如何在 UWP 使用 wpf 的 Trigger

简介: 原文:如何在 UWP 使用 wpf 的 Trigger 本文需要告诉大家,如何使用 Behaviors 做出 WPF 的 Trigger ,需要知道 UWP 不支持 WPF 的 Trigger 。
原文: 如何在 UWP 使用 wpf 的 Trigger

本文需要告诉大家,如何使用 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 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

目录
相关文章
|
C# 开发工具 Windows
WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件
原文 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项。
1440 0
|
C# Windows 开发工具
WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)
原文 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) Windows Community Toolkit 再次更新到 5.0。
1909 0
|
缓存 C# 开发工具
将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj
原文 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj 写过 .NET Standard 类库或者 .NET Core 程序的你一定非常喜欢微软为他们新开发的项目文件(对于 C#,则是 csproj 文件)。
1190 0
|
XML C# 数据格式
[UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)
原文:[UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF) 1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多。不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好从了它,顺便简单介绍下怎么自定义代码段。
741 0
|
Web App开发 C# Windows
WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
原文:WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
1517 0
|
算法 C#
WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则
原文:WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
1031 0
|
C# Windows Web App开发
WPF 应用完全模拟 UWP 的标题栏按钮
原文:WPF 应用完全模拟 UWP 的标题栏按钮 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
1040 0
|
C# 前端开发
WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制
原文:WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
937 0
|
缓存 .NET 中间件
【WPF】【UWP】借鉴 asp.net core 管道处理模型打造图片缓存控件 ImageEx
原文:【WPF】【UWP】借鉴 asp.net core 管道处理模型打造图片缓存控件 ImageEx 在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的。 比如访问百度,我们可以发现,图片、脚本这种都是从缓存(内存缓存/磁盘缓存)中加载的,而不是再去访问一次百度的服务器,这样一方面改善了响应速度,另一方面也减轻了服务端的压力。
1375 0
|
19天前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库