所以我是WPF的新手,我按照在线教程为Textbox创建了一个controlTemplate,我可以通过手动设置样式来应用它,但我想自动将其应用到所有文本框。
现在我在线阅读样式,你可以简单地删除Key定义,它将是通用的,但我认为只适用于Style而不是ControlTemplate,因为当我这样做时,它会抛出一个错误,说“所有对象添加到IDictionary必须具有Key属性或其他类型的键关联“
我该怎么办?
<ControlTemplate TargetType="{x:Type TextBoxBase}">
答案 0 :(得分:2)
像你提到的那样创建默认样式,并在其中创建set default template
,以便它应用于所有textBox。请确保将其放在App.Resources
下,以便将其应用于所有窗口中的textBoxes。如果您希望将其应用于特定窗口,请将其放在Window.Resources
。
<Style TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
答案 1 :(得分:2)
我同意风格的方式。但还有另一种方式, 使用 UserControl 和文本框。根据需要将所有属性设置为文本框。只需使用你想要的任何地方!