WPF按钮用于一种样式的不同图像

WPF按钮用于一种样式的不同图像,wpf,data-binding,Wpf,Data Binding,我不明白为什么不显示图像。我想为一种风格不同的按钮图像。 我尝试将按钮图像设置为按钮样式中的imagebrush,但是我将在所有按钮上只有一张图片 <Button Height="64" Width="64" Margin="0,0,50,50" Style="{DynamicResource MyButtonStyle}" VerticalAlignment="Bottom" HorizontalAlignment="Right"> <Imag

我不明白为什么不显示图像。我想为一种风格不同的按钮图像。 我尝试将按钮图像设置为按钮样式中的imagebrush,但是我将在所有按钮上只有一张图片

<Button
    Height="64" Width="64" Margin="0,0,50,50"
    Style="{DynamicResource MyButtonStyle}" VerticalAlignment="Bottom"
    HorizontalAlignment="Right">
    <Image Source="image1.png"/>
</Button>
<Button
    Height="64" Width="64" Margin="0,0,125,50"
    Style="{DynamicResource MyButtonStyle}" VerticalAlignment="Bottom" 
    HorizontalAlignment="Right">
    <Image Source="image2.png"/>
</Button>

按钮样式

<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Grid>
                    <Rectangle x:Name="rectangle" Stroke="Black" />
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Opacity" TargetName="rectangle" Value="0.8"/>
                        <Setter Property="Stroke" TargetName="rectangle" Value="#FF478CFB"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="OpacityMask" TargetName="rectangle" Value="{x:Null}"/>
                        <Setter Property="Effect" TargetName="rectangle">
                            <Setter.Value>
                                <BlurEffect/>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

缺少您的样式
ContentPresenter
。因此,当您将图像设置为
按钮的
内容
时,在使用样式的
控制模板

比如说:

注意-我已将您的
网格
更改为
边框
,从而去掉了嵌入其中的
矩形
,并将
内容呈现者
添加为
边框

<Style x:Key="MyButtonStyle"
        TargetType="{x:Type Button}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type Button}">
        <Border x:Name="rectangle">
          <ContentPresenter />
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsMouseOver"
                    Value="True">
            <Setter TargetName="rectangle"
                    Property="Opacity"
                    Value="0.8" />
            <Setter TargetName="rectangle"
                    Property="BorderBrush"
                    Value="#FF478CFB" />
          </Trigger>
          <Trigger Property="IsPressed"
                    Value="True">
            <Setter TargetName="rectangle"
                    Property="OpacityMask"
                    Value="{x:Null}" />
            <Setter TargetName="rectangle"
                    Property="Effect">
              <Setter.Value>
                <BlurEffect />
              </Setter.Value>
            </Setter>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

用法:

和你一样-

<Button
    Height="64" Width="64" Margin="0,0,125,50"
    Style="{DynamicResource MyButtonStyle}" VerticalAlignment="Bottom" 
    HorizontalAlignment="Right">
    <Image Source="image2.png"/>
</Button>