WPF – 如何使用模板创建图像按钮

我试图创建一个按钮,有3个图像:一个普通图像,一个压缩图像和一个禁用图像(我将使用这些创建向上/向下箭头按钮)。

我相信正确的方法是从Button导出并使用模板并设置触发器来更改图像。我有3个依赖属性,每个图像一个。

图像将是.png和具有透明背景(因为它们不是矩形)。

我在MFC中寻找类似CBitmapButton的东西。

您不需要依赖属性,因为您正在继承Button。您已经具有IsPressed和IsEnabled属性。事实上,这是你需要的:

<Button x:Class="TestWpfApplication.ThreeStateImageButton"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Button.Template>
      <ControlTemplate TargetType="{x:Type Button}">
         <Grid>
            <Image Name="Normal" Source="Resources/Normal.png"/>
            <Image Name="Pressed" Source="Resources/Pressed.png" Visibility="Hidden"/>
            <Image Name="Disabled" Source="Resources/Disabled.png" Visibility="Hidden"/>
         </Grid>
         <ControlTemplate.Triggers>
            <Trigger Property="IsPressed" Value="True">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
               <Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
               <Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
            </Trigger>
         </ControlTemplate.Triggers>
      </ControlTemplate>
   </Button.Template>
</Button>

使用UserControl代码隐藏文件:

public partial class ThreeStateImageButton : Button
{
   public ThreeStateImageButton()
   {
      InitializeComponent();
   }
}
http://stackoverflow.com/questions/1261908/wpf-how-to-create-image-button-with-template

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:WPF – 如何使用模板创建图像按钮