WPF not applying default styles defined in MergedDictionaries? WPF not applying default styles defined in MergedDictionaries? wpf wpf

WPF not applying default styles defined in MergedDictionaries?


The best solution is to add a dummy default style in the resource dictionary where you merge all resources together.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><ResourceDictionary.MergedDictionaries>    <ResourceDictionary Source="Style/Button.xaml"/></ResourceDictionary.MergedDictionaries><Style TargetType="Control" BasedOn="{StaticResource {x:Type Control}}" />


This could be caused by a known bug when there is a single style in application.resources within app.xaml when not using a startupuri.

The fix is to add an additional style like this...

...   <Style x:Key="unused" /></Application.Resources>

for more details check out this link.... http://bengribaudo.com/blog/2010/08/19/106/bug-single-application-resources-entry-ignored


There is a sort-of fix for this, but I’ve only been able to make it work at the window level (not the application level).

In order to include a WPF 4.0 resource from a separate project, the resource must be added as a resource in the window’s code behind. The statement belongs in the window’s constructor, prior to the InitializeComponent method call:

public ControlsWindow(){    this.Resources = Application.LoadComponent(new Uri("[WPF 4.0 ResourceProjectName];Component/[Directory and File Name within project]", UriKind.Relative)) as ResourceDictionary;    InitializeComponent();}

Note: Replace the '[WPF 4.0 ResourceProjectName]' text with your resource's project name. Also, the '[Directory and File Name within project]' needs to be replaced with the relative location of the resource file (like 'Themes/StandardTheme.xaml')

I go into more details about this issue here.