Windows   发布时间:2022-05-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在悬停或单击时更改按钮图像大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在悬停和单击时更改按钮的背景图像? Visual studio的UI似乎没有提供任何简单的方法.目前,默认行为似乎用纯色替换我的图像,这看起来很糟糕.

我到目前为止所有的都是按钮基础:

<Button Content="" Height="75" VerticalAlignment="Center" Width="75" HorizontalAlignment="Center" Clickmode="Press">
        <Button.BACkground>
            <ImageBrush Imagesource="../data/images/icons/skill_icon_0.png"/>
        </Button.BACkground>
    </Button>

我试图处理事件并手动设置它,但它不适用于Pressed / Released:

Button skillButton = new Button();
        skillButton.Width = 75;
        skillButton.Height = 75;
        skillButton.Clickmode = Clickmode.Press;
        skillButton.BACkground = GetIconImage(iconIndex,0);
        skillButton.PointerEntered += 
            (object sender,WindowS.UI.Xaml.Input.PointerEventArgs E) => {
                skillButton.BACkground = GetIconImage(iconIndex,1);
            };
        skillButton.PointerExited +=
            (object sender,0);
            };
        skillButton.PointerPressed +=
            (object sender,2);
            };
        skillButton.PointerReleased +=
            (object sender,WindowS.UI.Xaml.Input.PointerEventArgs E) => {
                if (skillButton.FocusState == FocusState.Pointer)
                    skillButton.BACkground = GetIconImage(iconIndex,1);
                else skillButton.BACkground = GetIconImage(iconIndex,0);
            };
@H_673_17@解决方法
我最后编辑ControlTemplate只是为了创建和更改边框.但它也可以用来改变图像.

<Button Width="75" Height="75" Clickmode="Press">
        <Button.Template>
            <ControlTemplate TargetType="Button">
                <Border x:Name="RootElement" CornerRadius="10" BorderThickness="2">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition To="MouSEOver" GeneratedDuration="0:0:0.1"/>
                                <VisualTransition To="Pressed" GeneratedDuration="0:0:0.1"/>
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Normal" />
                            <VisualState x:Name="MouSEOver">
                                <Storyboard>
                                    <ColorAnimation Storyboard.TargetName="BorderBrush" 
                                                    Storyboard.TargetProperty="Color" 
                                                    To="Yellow" />
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Pressed">
                                <Storyboard>
                                    <ColorAnimation Storyboard.TargetName="BorderBrush" 
                                                    Storyboard.TargetProperty="Color"
                                                    To="Black"/>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Border.borderBrush>
                        <SolidColorBrush x:Name="BorderBrush" Color="White"/>
                    </Border.borderBrush>
                    <Border.BACkground>
                        <ImageBrush Imagesource="ms-appx:/data/images/icons/skill_icon_0.png"/>
                    </Border.BACkground>
                </Border>
            </ControlTemplate>
        </Button.Template>
    </Button>

大佬总结

以上是大佬教程为你收集整理的在悬停或单击时更改按钮图像全部内容,希望文章能够帮你解决在悬停或单击时更改按钮图像所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: