UWP 项目不支持触发器元素 (XAML)

2024-02-11

我正在为 Windows 10 开发通用 Windows 应用程序,我发现的第一件事是在设置图像样式时不支持触发器元素 (XAML)。这是我试图实现的代码:

抱歉,我必须在这里使用图像,我是从我的虚拟机获取它的。

这种类型的触发器现在如何在通用 Windows 应用程序中实现?


不,你没有TriggerUWP 中的支持。

解决方法是使用DataTriggerBehavior with a ChangePropertyAction完成完全相同的事情。

  xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
  xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 

<Button x:Name="MyButton" Width="140" Height="80" IsEnabled="False">
    <Image x:Name="MyImage" Source="Assets/xxx.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>

请注意,您需要包括BehaviorsXamlSDKManaged from C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\BehaviorsXamlSDKManaged\12.0\。添加引用时您会收到警告,但忽略它即可。

Update:您应该会收到更新的行为SDK from nuget https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Uwp.Managed/ now.


Option 2

你总是可以做同样的事情VisualStateManager. Open Blend并右键单击您的Button并选择编辑模板, 编辑副本然后指定您想要的资源名称并点击OK.

然后寻找Disabled VisualState并将其替换为

<VisualState x:Name="Disabled">
    <VisualState.Setters>
        <Setter Target="RootGrid.(UIElement.Opacity)" Value="0.5" />
    </VisualState.Setters>
</VisualState>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UWP 项目不支持触发器元素 (XAML) 的相关文章

随机推荐