如果样式在App.xaml中连接,则按TargetType应用样式

时间:2012-02-14 14:35:18

标签: .net wpf styles targettype

例如,我有风格

<Style TargetType="Button">
...
</Style>

在文件Button.xaml中 如果我在文件中使用MergeDictionary添加此样式,我想使用它 - 一切正常。但是如果我在文件层次结构中将此样式连接得更高(例如在App.xaml中),样式将停止工作,直到我设置x:Key为它和所有按钮设置

  

Style =“{StaticResource name_of_style}”。

我可以避免这种行为,或者我必须按名称设置所有元素样式吗?

1 个答案:

答案 0 :(得分:2)

尝试将其设置为app.xaml中的应用程序资源,如果对视图的UserControl.Resources执行相同操作,也可以在调用特定视图时执行相同的操作。

PS - 示例是silverlight,但方法保持不变。

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
              x:Class="The.App">
    <Application.Resources>
        <Style TargetType="Button" BasedOn="{StaticResource name_of_style}"/>
    </Application.Resources>