WPF全局样式将应用于多个控件模板

时间:2013-12-17 21:53:26

标签: wpf

我有全球风格,我在我的应用程序中分享了几个项目。但是当任何XAML具有数据模板时,这些样式都不会应用。有没有一种方法可以应用这些,而无需对datatemplate资源进行任何更改。

2 个答案:

答案 0 :(得分:0)

您已经简要解释过了。

这里的问题是为xaml中的样式指定的键。不要指定任何键。如果为样式指定了键,则它仅适用于明确要求样式的相应控件。

所以现在你的样式应如下所示(只需删除 x:Key )。

 <Style TargetType="TextBlock">
    <Setter Property="HorizontalAlignment" Value="Left"/>
    <Setter Property="FontSize" Value="10"/>
</Style>

如果你想基于Keys应用样式,那么你的Datatemplate的textBlock代码应该如下所示

<TextBlock Text="{Binding Currcode}" Style="{StaticResource TextBlockStyle}"/>

答案 1 :(得分:0)

哦,是的,我之前遇到了问题,使数据模板不属于同一资源。 即

<userControl>
 <USerControl.Resources>
  **<style is placed here>**
 </USerControl.Resources>
 <Grid>
 <Grid.Resources>
      **<Add the Data template here>**
 </Grid.Resources>

我真的不确定为什么Merged REsource字典和数据模板保存在同一个USerControl.Resources中无法正常工作

我们总是以与您在数据模板和控制模板中为控件发布的方式相同的方式使用样式。