2016-10-12 16 views
0

TextBlockTextに基づいて、背景色をButtonに設定しようとしています。 TextBlockButtonContentの一部であり、viewmodelプロパティにバインドされています。コンテンツに基づくボタン背景テキストブロックテキスト

<Button Style="{StaticResource ButtonStyle}"> 
     <Button.Content> 
      <StackPanel> 
        <TextBlock Text="Title" /> 
        <TextBlock Text="{Binding SomeValue, Mode=OneWay}" /> 
      </StackPanel> 
     </Button.Content> 
</Button> 

<Style x:Key="ButtonStyle" TargetType="{x:Type Button}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Border Name="bd"> 
          <ContentPresenter /> 
        </Border> 
        <ControlTemplate.Triggers> 
         //HOW TO HERE... 
         <Trigger Property="Text" Value="SomeText 1"> 
           <Setter TargetName="bd" Property="Background" Value="#b5e61d"/> 
         </Trigger> 
         <Trigger Property="Text" Value="SomeText 2"> 
           <Setter TargetName="bd" Property="Background" Value="#99d9ea"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
</Style> 

enter image description here

答えて

1

私はボタンのテンプレートにタイトルの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}" /> 
関連する問題