WPF图片按钮

进行按钮美化时,手上有的可能只是美工给的按钮的三态或四态图(正常/鼠标经过/鼠标按下/无效)。如果用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>


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值