【问题标题】:How to change button background color depending on bound command canexecute?如何根据绑定命令执行更改按钮背景颜色?
【发布时间】:2011-02-02 20:11:57
【问题描述】:

我有一个 ItemTemplate,它是一个绑定在命令上的简单按钮,可以根据某些属性执行或不可执行。

如果命令不可执行,我希望更改此按钮的背景颜色。 我尝试了几种方法,但无论如何我都找不到纯粹在 XAML 中执行此操作(我在学习环境中执行此操作,并且不允许使用后面的代码)。

这是我的按钮代码:

<Button x:Name="Dispo" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center" Width="30" Height="30" 
        Grid.Column="2" Grid.Row="0"
        Command="{Binding AddEmpruntCommandModel.Command}"
        CommandParameter="{Binding ElementName='flowCars', Path='SelectedItem'}"
        vm:CreateCommandBinding.Command="{Binding AddEmpruntCommandModel}" >
     <Button.Style>
        <Style TargetType="{x:Type Button}">
           <Style.Triggers>
               <Trigger Property="IsEnabled" Value="True">
                   <Setter Property="Button.Background" Value="Green"/>
               </Trigger>
               <Trigger Property="IsEnabled" Value="False">
                   <Setter Property="Button.Background" Value="Red"/>
               </Trigger>
           </Style.Triggers>
        </Style>
     </Button.Style>
  </Button>

【问题讨论】:

    标签: xaml button coding-style command


    【解决方案1】:

    您可以像这样指定自己的模板:

    <Button Content="OK" Command="{Binding SomeCommand}">
        <Button.Style>
            <Style>
                <Setter Property="Button.Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Border x:Name="Border" Background="Green">
                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                            </Border>
                            <ControlTemplate.Triggers>                                        
                                <Trigger Property="IsEnabled" Value="false">
                                    <Setter TargetName="Border" Property="Background" Value="Red" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Button.Style>
    </Button>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多