XAML样式基于TemplateBinding

时间:2014-01-30 16:16:22

标签: wpf xaml

我有一个具有Style={TemplateBinding ParentDependencyProperty}

的TextBlock

我需要在这个TextBlock上放置一些DataTriggers,但不要在整个样式上放置。

我需要这样的东西:

<TextBlock>
    <Style BasedOn="StyleInParentDependencyProperty">
        <Style.Triggers>
            ...
        </Style.Triggers>
    </Style>
</TextBlock>

我无法弄清楚如何,因为Styles的BasedOn属性中不允许绑定。我是WPF的新手,似乎一直困在这里。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情

<Style TargetType="TextBlock" x:Key="Default">
   <Setter Property="Background" Value="Red"></Setter>
   <Setter Property="FontFamily" Value="Segoe Black" />
   <Setter Property="HorizontalAlignment" Value="Center" />
   <Setter Property="FontSize" Value="32pt" />
   <Setter Property="Foreground" Value="#777777" />
</Style>

并在您需要TextBlock

DataTriggers上定义此样式
<Style BasedOn="{StaticResource Default}" TargetType="TextBlock" x:Key="TextBlockWithTriggers">
   <Style.Triggers> .... </Style.Triggers>
</Style>

TextBlock上定义

<TextBlock Style="{StaticResource TextBlockWithTriggers}"/>