基于内容Textblock文本的按钮背景

时间:2016-10-12 12:12:57

标签: wpf xaml button

我正在尝试根据Button TextBlock设置Text背景颜色。 TextBlockButton的{​​{1}}的一部分,并已绑定到viewmodel属性。

Content

enter image description here

1 个答案:

答案 0 :(得分:1)

我建议在Button的模板中包含标题TextBlock,然后根据Content值创建触发器:

<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border Name="bd">
                    <StackPanel>
                        <TextBlock Text="Title" HorizontalAlignment="Center"/>
                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
                    </StackPanel>
                </Border>

                <ControlTemplate.Triggers>
                    <Trigger Property="Content" Value="SomeText 1">
                        <Setter TargetName="bd" Property="Background" Value="#b5e61d"/>
                    </Trigger>
                    <Trigger Property="Content" Value="SomeText 2">
                        <Setter TargetName="bd" Property="Background" Value="#99d9ea"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<Button Style="{StaticResource ButtonStyle}" Content="{Binding SomeValue}" />