我有一个CustomControl
,并且希望使用默认值TextBox
的默认样式定义。我不知道那是否有可能。
这是我到目前为止一直没有成功的尝试。但是您可以在这里看到我的想法。
我的默认实现更改了TextBox
的默认样式(例如在app.xaml中将其全局应用)
<Style TargetType="TextBox">
<Setter Property="BorderThickness" Value="2"/>
</Style>
在这里,我想获取值'2'。
<Style TargetType="controls:CustomControl">
<Setter Property="BorderThickness" Value="{Binding Source={x:Static TextBox.BorderThicknessProperty}}"/>
</Style>
答案 0 :(得分:0)
BorderThickness
的{{1}}属性的默认值以TextBox
的默认样式定义,该样式最终在运行时应用于TextBox
的实例
所以您不能做这样的事情:
TextBox
...除非您绑定到使用默认样式的<Style TargetType="controls:CustomControl">
<Setter Property="BorderThickness" Value="{Binding Source={x:Static TextBox.BorderThicknessProperty}}"/>
</Style>
的实际实例。
您可以查看TextBox
的默认模板,并通过以下方式简单地复制其默认的TextBox
属性值BorderThickness
:
1
很显然,您还可以从多个<Style TargetType="controls:CustomControl">
<Setter Property="BorderThickness" Value="1"/>
</Style>
绑定到类的属性,例如:
Style