我创建了从文本框继承的WPF控件
我已将Theme BureauBlue 添加到我的项目中,并将以下XAML添加到我的Application.xaml
<Application.Resources>
<ResourceDictionary Source="Themes/BureauBlue.xaml"/>
</Application.Resources>
我希望将相同的主题应用于从TextBox继承的Custome Control
我怎样才能实现这个
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>
ERR
The property "Resources" can only be set once.
The specified value cannot be assigned. The following type was expected: "ResourceDictionary".
答案 0 :(得分:0)
如果定位到Textbox
的样式不适用于其自定义控件(从Textbox
继承的控件。如果您知道BureauBlue's
样式,请将其作为针对您的派生类名称的新样式,如果您不知道该样式,我可以为此建议一种解决方法。
创建一个定位到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
的{{1}}将适用于您的Textbox