我已经创建了一个继承自文本框的WPF控件。
我已经添加了主题 蓝色局 在我的项目中添加以下XAML到我的Application.xaml中。
<Application.Resources>
<ResourceDictionary Source="Themes/BureauBlue.xaml"/>
</Application.Resources>
我想把同样的主题应用到我的自定义控件上,该控件从TextBox继承。
如何才能做到这一点
Amit Saraf
根据建议进行编辑修改
<Application.Resources>
<ResourceDictionary Source="Themes/BureauBlue.xaml"/>
<Style TargetType="WPFControls:MyTextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<TextBox Text="{TemplateBinding Text}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
错误
The property "Resources" can only be set once.
The specified value cannot be assigned. The following type was expected: "ResourceDictionary".
如果一个风格的目标是 Textbox
将不适用于其自定义控件( 控件继承于 Textbox
. 如果你知道 BureauBlue's
风格,将其作为一个新的风格放置在你的App资源中,这个新的风格是以你的派生类名为目标的,如果你不知道这个风格,我可以建议一个变通的办法。
创建一个新的样式,目标是你的 custom control
并定义一个 Template
其中
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/BureauBlue.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="WPFControls:MyTextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<TextBox Text="{TemplateBinding Text}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</Application.Resources>
注意:模板绑定的属性,你往往会在你的应用程序中使用。custom control
类。
这里的 Style
其目标是 Textbox
将适用于您的 custom control