绑定到xaml中另一个控件样式定义的默认属性值

时间:2018-08-06 07:11:16

标签: wpf xaml

我有一个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>

1 个答案:

答案 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