如何制作2状态图像按钮?

时间:2011-09-18 03:58:50

标签: wpf wpf-controls

我真的很惊讶我在这里找不到这个简单问题的答案。我想创建一个带有图像内容的简单按钮。按下时,图像应更改为另一个图像,然后在释放按钮后更改回原始图像。最简单的方法是什么?

编辑:这不是切换按钮!

1 个答案:

答案 0 :(得分:3)

您可以使用ControlTemplate指定按钮的可视结构。

下面的XAML显示了如何将图像添加到按钮(保持标准的镶边边框,但如果不需要则可以删除它),并在isPressed事件上添加触发器以设置其他图像。如果要使用chrome按钮边框,则还需要包含命名空间xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna"

    <Button>
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">      
            <Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" BorderBrush="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderDefaulted="{TemplateBinding IsDefaulted}" SnapsToDevicePixels="true" ThemeColor="NormalColor">
                <Image x:Name="buttonImage" Source="defaultImage"/>
            </Microsoft_Windows_Themes:ButtonChrome>                
            <ControlTemplate.Triggers>      
                <Trigger Property="IsPressed" Value="true">
                    <Setter Property="Source" TargetName="buttonImage" Value="onPressedImage"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>          
</Button>