带图像的 WPF 按钮样式

Ole*_* Sh 0 wpf styles

我想为里面有不同图像的按钮创建一个样式。我尝试执行以下操作:

<Style TargetType="Button"
       x:Key="PaintButton">
  <Setter Property="Width"
          Value="40"></Setter>
  <Setter Property="Height"
          Value="40"></Setter>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate>
        <Grid>
          <Border CornerRadius="3"
                  BorderThickness="2"
                  BorderBrush="Green">
            <Image Source="{TemplateBinding Button.Content}" />
          </Border>
        </Grid>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

并尝试使用:

<Button Content="images/pen.png"
        HorizontalAlignment="Left"
        Style="{DynamicResource PaintButton}" />
Run Code Online (Sandbox Code Playgroud)

但未显示图像。为什么以及如何正确地做到这一点?

mor*_*cer 5

“图像”不是另一个图像的正确来源。使用 BitmapImage 作为 Button 的内容或在模板中使用 ContentPresenter。

选项1。

    <Button Style="{StaticResource PaintButton}">
        <BitmapImage UriSource="Back_Forward.png"/>
    </Button>
Run Code Online (Sandbox Code Playgroud)

选项 2。

<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate>
      <Grid>
        <Border CornerRadius="3"
                BorderThickness="2"
                BorderBrush="Green">
          <ContentPresenter Content="{TemplateBinding Button.Content}" />
        </Border>
      </Grid>
    </ControlTemplate>
  </Setter.Value>
</Setter> 
Run Code Online (Sandbox Code Playgroud)