在WPF中,如何将ControlTemplate应用于所有文本框

时间:2014-01-03 14:18:41

标签: wpf

所以我是WPF的新手,我按照在线教程为Textbox创建了一个controlTemplate,我可以通过手动设置样式来应用它,但我想自动将其应用到所有文本框。

现在我在线阅读样式,你可以简单地删除Key定义,它将是通用的,但我认为只适用于Style而不是ControlTemplate,因为当我这样做时,它会抛出一个错误,说“所有对象添加到IDictionary必须具有Key属性或其他类型的键关联“

我该怎么办?

<ControlTemplate  TargetType="{x:Type TextBoxBase}">

2 个答案:

答案 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 和文本框。根据需要将所有属性设置为文本框。只需使用你想要的任何地方!