在处理美工的这种图的时候,要切成一张张的会很麻烦。参考
http://blog.youkuaiyun.com/qian_f/article/details/28886021自定义了一个类ImageButton。
ImageButton的模板和使用:
运行截图:
ImageButton.cs
using System;
using System.Windows;
using System.Windows.Controls;
namespace WPFTEST
{
class ImageButton : Button
{
private string m_imagepath;
public string ImgPath {
get { return m_imagepath; }
set { m_imagepath = value; }
}
}
}
ImageButton的模板和使用:
<Window x:Class="WPFTEST.ImageBtnWin"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFTEST"
Title="ImageBtnWin" Height="300" Width="300">
<Window.Resources>
<ControlTemplate x:Key="ImageButtonTemplate" TargetType="{x:Type local:ImageButton}">
<Rectangle x:Name="bgrect">
<Rectangle.Fill>
<ImageBrush ImageSource="{Binding ImgPath, RelativeSource={RelativeSource TemplatedParent}}" Stretch="UniformToFill" Viewbox="0,0,0.25,1" />
</Rectangle.Fill>
</Rectangle>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="bgrect" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{Binding ImgPath, RelativeSource={RelativeSource TemplatedParent}}" Stretch="UniformToFill" Viewbox="0.25,0,0.25,1" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="bgrect" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{Binding ImgPath, RelativeSource={RelativeSource TemplatedParent}}" Stretch="UniformToFill" Viewbox="0.5,0,0.25,1" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="bgrect" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{Binding ImgPath, RelativeSource={RelativeSource TemplatedParent}}" Stretch="UniformToFill" Viewbox="0.75,0,0.25,1" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<Grid>
<local:ImageButton Width="132" Height="43" ImgPath="/Images/拍摄.png" Template="{StaticResource ImageButtonTemplate}" />
</Grid>
</Window>
运行截图: