如果按钮有 IsMyButtonEnabled 那么可以使用下面的代码绑定透明

时间:2021-12-14 03:44:20

请使用 Nuget 安置,可以输入下面的代码进行安置

Install-Package Microsoft.Xaml.Behaviors.Uwp.Managed

或者搜索 Microsoft.Xaml.Behaviors 下载

他的官网在 Behaviors

以前的代码

在 WPF 开发,可以写出下面代码

<Button> <Image> <Image.Style> <Style TargetType="Image"> <Style.Triggers Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value="0.5"></Setter> </Style.Triggers> </Style> <Image.Style/> </Image> </Button>

在 Button IsEnabled 设置图片的透明,但是 UWP 不撑持,所以需要使用另外要领。

UWP 使用 Trigger

上面的代码可以很简单用 DataTriggerBehavior 来做。需要知道的是 DataTriggerBehavior 是 Behaviors 的一个对象,所以需要安置之后才可以使用。请看下面的代码。

<Button x:Name="MyButton" Margin="10,10,10,10" Width="140" Height="80"> <Image x:Name="MyImage" Source="Assets/动漫.jpg"> <interactivity:Interaction.Behaviors> <core:DataTriggerBehavior Binding="{Binding IsEnabled, ElementName=MyButton}" Value="False"> <core:ChangePropertyAction TargetObject="{Binding ElementName=MyImage}" PropertyName="Opacity" Value="0.5" /> </core:DataTriggerBehavior> </interactivity:Interaction.Behaviors> </Image> </Button>

这里的代码不能直接复制使用,需要先添加定名空间和寻找一张图片,因为图片使用的是Assets/动漫.jpg ,所以需要把他改削为你的图片的地址,如何写参见win10 uwp 访谒解决方案文件

定名空间 xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:core="using:Microsoft.Xaml.Interactions.Core"

不需要在后台写什么,直接运行可以看到在
按钮可以使用时的图片

按钮无法使用时的图片

请使用 DataTriggerBehavior 的Binding 连到需要改削的属性,在 Value 判断他的值。

然后可以在得到的值判断,改削透明

可以看到使用要领和动画一样

如果使用 MVVM 的话,可以把透明绑到一个属性,通过返回来设置,如果按钮有 IsMyButtonEnabled 那么可以使用下面的代码绑定透明,因为很简单我就不说啦。

return IsMyButtonEnabled ? 1.0 : 0.5;

参见:Trigger element (XAML) is not supported in a UWP project


本作品给与常识共享署名-非商业性使用-不异方法共享 4.0 国际许可协议进行许可。欢迎转载、使用、从头颁布,但务必保存文章署名林德熙(包罗链接: ),不得用于商业目的,基于本文改削后的作品务必以不异的许可颁布。如有任何疑问,,请与我。