从xaml中的样式setter属性中获取值

时间:2013-05-29 11:24:37

标签: wpf

如何在xaml中获取样式设置器属性的值?

例如,我有下一个风格:

<Style TargetType="TextBox">
    <Setter Property="Background" Value="YellowGreen" />
</Style>

如何从TextBox默认样式中获取Background属性的值?

<Style TargetType="Button">
    <Setter Property="Background" Value="{Binding ???}" />
</Style>

我需要这个,因为我无法访问TextBox样式 ..

2 个答案:

答案 0 :(得分:5)

如果你不能修改TextBox样式,你可以解决这个问题(测试,工作):

<TextBox x:Key="DefaultTextBox" />
<Style TargetType="Button">
  <Setter Property="Background" 
    Value="{Binding Source={StaticResource DefaultTextBox}, Path=Background}" />
</Style>

您不能将xaml绑定到样式的背景设置器。

答案 1 :(得分:3)

你应该重构你的XAML:

<SolidColorBrush x:Key="BackgroundBrush" Color="YellowGreen" />
<Style TargetType="TextBox">
    <Setter Property="Background" Value="{StaticResource BackgroundBrush}" />
</Style>

<Style TargetType="Button">
    <Setter Property="Background" Value="{StaticResource BackgroundBrush}" />
</Style>

绑定妨碍了性能,并不适用于这种行为。