TextBox样式是为所有文本框设置的

时间:2016-03-30 14:52:41

标签: c# wpf xaml

我在我的应用程序中为一些特定的Textbox创建了一个样式,并将其放在我的App.xaml内:

<Style x:Name="TextBoxStyle" TargetType="TextBox">
    <Setter Property="Background" Value="Blue"/>
</Style>

执行此操作后,它会为我的应用程序中的每个文本框设置样式。我甚至没有在任何文本框上设置这种风格。

谁能告诉我为什么会这样?

1 个答案:

答案 0 :(得分:4)

您需要指定x:Key(并使用StaticResource引用),否则由TargetType使用,因此适用于所有TextBoxes

这是一种特殊的隐含行为,即如果Style被定义为没有密钥的ResourceDictionary的子项,TargetType将被用作密钥。还有其他这样的隐含规则,例如DataTemplate创建特殊的数据模板密钥,然后在适用的情况下隐式应用模板。