为什么此WPF按钮背景不会在图像后面更改?

时间:2016-12-08 13:49:42

标签: c# wpf xaml

我的方块颜色为SaddleBrownWhiteSmoke,选中时会移至DarkTurquoise。当正方形顶部没有图像时,这种方法有效。当我在方块顶部有一个(PNG)图像时,原始SaddleBrown / WhiteSmoke颜色显示在它后面但是当颜色应该更改为DarkTurquoise时,背景颜色没有任何反应广场。

可能是什么问题?

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <Button x:Name="Square"
                Command="{Binding DataContext.BoardGUI.SquareClickCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
                CommandParameter="{Binding}">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Grid Background="{TemplateBinding Background}">
                        <Image Source="{Binding Source, Converter={StaticResource NullImageConverter}}"/>
                    </Grid>
                </ControlTemplate>
            </Button.Template>
        </Button>

        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding SquareColor}" Value="Dark">
                <Setter TargetName="Square" Property="Background" Value="SaddleBrown"/>
            </DataTrigger>

            <DataTrigger Binding="{Binding SquareColor}" Value="White">
                <Setter TargetName="Square" Property="Background" Value="WhiteSmoke"/>
            </DataTrigger>

            <DataTrigger Binding="{Binding IsSelected}" Value="True">
                <Setter TargetName="Square" Property="Background" Value="DarkTurquoise"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</ItemsControl.ItemTemplate>

1 个答案:

答案 0 :(得分:1)

根据评论中的确定,基于屏幕截图和触发器的定义,它似乎是&#34; SquareColor&#34;设置IsSelected后,可能会设置或更改。