如何在 UWP 使用 wpf 的 Trigger
来源:互联网 发布:网络在线咨询 编辑:程序博客网 时间:2024/06/05 00:18
本文需要告诉大家,如何使用 Behaviors 做出 WPF 的 Trigger ,需要知道 UWP 不支持 WPF 的 Trigger 。
安装 Behaviors
请使用 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 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
- 如何在 UWP 使用 wpf 的 Trigger
- WPF中如何在Xaml里通过Trigger修改该其他控件的属性
- WPF中如何在Xaml里通过Trigger修改该其他控件的属性
- WPF 在ResourceDictionary文件中使用自定的属性作为trigger 的target
- 如何在Winform、WPF和未来占据主导地位的UWP之间最大程度实现代码重用
- [UWP]在UWP中使用EntityFrameworkCore + SQLite
- 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案
- UWP SQLite的使用
- WPF(Trigger)
- [Unity3D]在UWP工程中使用的序列化方法
- 【UWP开发】Unity如何使用UWP接入xbox live
- WPF中button的trigger问题
- sysrq-trigger的使用
- 触发器trigger的使用
- 如何在WPF应用程序中使用Invoke
- 如何在WPF中使用ActiveX
- 在WPF中如何使用RelativeSource绑定
- 如何在WPF中使用TypeConverter类
- 编写代码实现,模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
- Java HashMap笔记之一:基本原理
- Linux下去掉^M的方法
- Java /封装/包装/必记的小部分内容
- [思维题] Ignatius and the Princess IV HDU
- 如何在 UWP 使用 wpf 的 Trigger
- Launcher 启动 UE4 引擎出现 An Unreal process has crashed 的问题
- BMP图片的显示,本文章侧重于图片的内部数据结构
- ASP SQL语句
- css三角形的制作
- Idea15 常用设置(一):JDK、SVN
- Fire Game
- 1032. 挖掘机技术哪家强(20)
- Unreal 源码编译运行 Missing cached shader map... 的问题