WPF图片按钮

来源:互联网 发布:淘宝助手怎么导出订单 编辑:程序博客网 时间:2024/05/18 02:49

进行按钮美化时,手上有的可能只是美工给的按钮的三态或四态图(正常/鼠标经过/鼠标按下/无效)。如果用Blend来画相同的图时间的开销就大了,还是直接用图片的好。

xaml代码如下:

<Button x:Name="btn_danru"  Grid.Column="0" Grid.Row="2" Click="btn_danru_Click"><Button.Style><Style TargetType="{x:Type Button}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type Button}"><Image Name="btnbg" Source="/Images/btn_normal.png" /><ControlTemplate.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Source"  Value="/Images/btn_over.png" TargetName="btnbg" /></Trigger><Trigger Property="IsPressed" Value="True"><Setter Property="Source" Value="/Images/btn_down.png" TargetName="btnbg" /></Trigger><Trigger Property="IsEnabled" Value="false"><Setter Property="Source" Value="/Images/btn_unenable.png" TargetName="btnbg" /></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style></Button.Style></Button>


上面的情况是建立在美工给你的图是一张张的,但万一美工给的图是一张连续的状态图,如下图,则该如何咧?


不急,可以使用如下方法:

<Button Content="Button"  Height="43" HorizontalAlignment="Left" Margin="76,109,0,0" Name="button1" VerticalAlignment="Top" Width="132">    <Button.Style>        <Style TargetType="{x:Type Button}">            <Setter Property="Template">                <Setter.Value>                    <ControlTemplate TargetType="{x:Type Button}">                                                       <Rectangle Name="bgrect">                            <Rectangle.Fill>                                <ImageBrush ImageSource="/Images/拍摄.png" Stretch="UniformToFill" Viewbox="0,0,0.25,1" />                                                                  </Rectangle.Fill>                        </Rectangle>                                                                                                                 <ControlTemplate.Triggers>                            <Trigger Property="IsMouseOver" Value="True">                                <Setter Property="Fill" TargetName="bgrect">                                    <Setter.Value>                                        <ImageBrush ImageSource="/Images/拍摄.png" Stretch="UniformToFill" Viewbox="0.25,0,0.25,1" />                                    </Setter.Value>                                </Setter>                            </Trigger>                            <Trigger Property="IsPressed" Value="True">                                <Setter Property="Fill" TargetName="bgrect">                                    <Setter.Value>                                        <ImageBrush ImageSource="/Images/拍摄.png" Stretch="UniformToFill" Viewbox="0.5,0,0.25,1" />                                    </Setter.Value>                                </Setter>                            </Trigger>                        </ControlTemplate.Triggers>                    </ControlTemplate>                </Setter.Value>            </Setter>        </Style>    </Button.Style></Button>


2 0
原创粉丝点击