如何在窗口wpf中应用样式时如何加载样式文件而不是generic.xaml

时间:2018-11-07 09:10:20

标签: wpf styles themes

我有WPF项目,在其中我已将窗口中另一个程序集的样式应用于整个应用程序。但是,我在应用程序内部使用的自定义控件之一并没有采用这种样式。总是从generic.xaml加载样式。

在此自定义控件类中,我设置了DefaultStyleKey属性,并且外部样式文件也添加到了Application资源字典的合并字典中。任何人都可以面对这种问题吗?

注意:其他控件的样式会从另一个实例中应用

<Window x:Class="WpfApplication_CalenderEdit.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication_CalenderEdit"   
    xmlns:thirdParty=""
    mc:Ignorable="d" thirdParty.Style="ThemeNew"
    xmlns:ie="http://schemas.microsoft.com/expression/2010/interactivity"
    WindowStartupLocation="CenterScreen" 
  Title="Calendar Sample" Height="450" Width="625"  >
<!--<Window.DataContext>
    <local:ViewModel/>

</Window.DataContext>-->
<Grid  >
    <!--<DockPanel>-->
    <StackPanel >

        <Calendar WeekNumberForeground="Red" Padding="10"  />
      <ComboBox Margin="20" Height="35" Width="150"/>
    </StackPanel>

1 个答案:

答案 0 :(得分:0)

您还应该将相同的Style应用于自定义窗口,例如:

<Style TargetType="{x:Type Window}" BasedOn="{StaticResource CustomStyle}" />
<Style TargetType="{x:Type controls:CustomWindow}" BasedOn="{StaticResource CustomStyle}" />