CFirst 2015-09-19 08:37 采纳率: 100%
浏览 2679
已采纳

WPF自定义按钮问题 -- 样式相同图片不同

 <UserControl x:Class="WpfApplication6.LeftButton"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>
        <Style x:Key="ListLeftButton" TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Grid>
                            <Rectangle x:Name="rectangle">
                                <Rectangle.Fill>
                                    <ImageBrush ImageSource="skin/01228[46x62x8BPP].png"/>
                                </Rectangle.Fill>
                            </Rectangle>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsFocused" Value="True">
                                <Setter Property="Fill" TargetName="rectangle">
                                    <Setter.Value>
                                        <ImageBrush ImageSource="skin/01227[46x62x8BPP].png"/>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsDefaulted" Value="True"/>
                            <Trigger Property="IsMouseOver" Value="True"/>
                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Fill" TargetName="rectangle">
                                    <Setter.Value>
                                        <ImageBrush ImageSource="skin/01226[46x62x8BPP].png"></ImageBrush>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="False"/>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>
    <StackPanel>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
        <Button Style="{StaticResource ListLeftButton}" Width="50" Height="60"/>
    </StackPanel>
</UserControl>

我利用模板自定义了按钮,这些按钮的样式都相同只是背景图片不一样,但我只会在模板中定义一张,要不同的按钮对应不同的图片应该怎么做呐?求解答,多谢

  • 写回答

2条回答 默认 最新

  • CFirst 2015-09-19 09:16
    关注

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="300">

    <br> <Setter Property="Template"><br> <Setter.Value><br> <ControlTemplate TargetType="{x:Type Button}"><br> <Grid><br> <Rectangle x:Name="rectangle"><br> <Rectangle.Fill><br> <ImageBrush ImageSource="skin/01228[46x62x8BPP].png"/><br> </Rectangle.Fill><br> </Rectangle><br> </Grid><br> <ControlTemplate.Triggers><br> <Trigger Property="IsFocused" Value="True"><br> <Setter Property="Fill" TargetName="rectangle"><br> <Setter.Value><br> <ImageBrush ImageSource="skin/01227[46x62x8BPP].png"/><br> </Setter.Value><br> </Setter><br> </Trigger><br> <Trigger Property="IsDefaulted" Value="True"/><br> <Trigger Property="IsMouseOver" Value="True"/><br> <Trigger Property="IsPressed" Value="True"><br> <Setter Property="Fill" TargetName="rectangle"><br> <Setter.Value><br> <ImageBrush ImageSource="skin/01226[46x62x8BPP].png"></ImageBrush><br> </Setter.Value><br> </Setter><br> </Trigger><br> <Trigger Property="IsEnabled" Value="False"/><br> </ControlTemplate.Triggers><br> </ControlTemplate><br> </Setter.Value><br> </Setter><br>









    
    

    效果如图
    图片说明

    我想让每张图片都不一样怎么做

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器