我有一个主题应用于资源字典中的所有按钮。现在我想在按钮上添加一个触发器,同时继承字典中的样式更改。我试了下面的代码:在资源字典中以另一种样式为基础创建样式
但它说,控制无法找到。 我该如何解决它?
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
<conv:ErrorContentConverter x:Key="ErrorContentConverter" />
<Style x:Key="ValidTrigger"
TargetType="Control" BasedOn="{StaticResource {x:Type Control}}" >
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsValid}" Value="False">
<Setter Property="IsEnabled" Value="false" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</UserControl.Resources>
和基本模板:
<Style TargetType="{x:Type Button}" BasedOn="{x:Null}">
<Setter Property="FocusVisualStyle"
Value="{DynamicResource NuclearButtonFocusVisual}" />
<Setter Property="Foreground" Value="#FF042271" />
<Setter Property="FontFamily" Value="Trebuchet MS" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Padding" Value="3" />
<Setter Property="Template" Value="{DynamicResource ButtonTemplate}" />
</Style>
我可以不分配名称吗?词典中只有一种控制风格。 – Marcom 2011-04-15 10:03:37
您的意思是说,您不希望将扩展样式指定为基准样式,而是根据它的TargetType找出要扩展的样式?我不知道。 – 2011-04-15 10:21:29
为什么你犹豫给基础风格一个x:Key =“FooStyle”? – 2011-04-15 10:26:53