4

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

例如,我有下一个风格:

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

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

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

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

4

2 回答 2

6

如果您无法修改 TextBox 样式,则可以解决此问题(经过测试,有效):

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

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

于 2013-05-29T11:49:23.830 回答
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>

绑定会妨碍性能,并且不适用于此类操作。

于 2013-05-29T11:28:43.760 回答