【问题标题】:Is there any better way to give conditional styling in uwp?有没有更好的方法在 uwp 中提供条件样式?
【发布时间】:2016-07-09 04:23:36
【问题描述】:

我尝试在 style.setter 中使用转换器提供条件样式,如下所示,

    <Style TargetType="DataGrid">
        <Setter Property="Background" Value="{Binding Converter={StaticResource cc}}" />
    </Style>

并了解到在 UWP 中不支持使用转换器。所以请任何人建议我使用 style.setter 中的转换器在 UWP 中提供条件样式的更好方法

【问题讨论】:

    标签: xaml win-universal-app


    【解决方案1】:

    不,我们在 UWP 中不支持 Trigger

    为了让 UWP 和 Windows phone 8 的触发器尽可能轻松 被 msft 删除。我们可以实现那些使用交互核心。 Blend(IDE) 非常支持在这些技术中创建触发器。

    Blend 允许为应用程序Here 定义行为。
    我们可以定义

    1. DataTrigger 使用 DataTrigger 触发器根据数据绑定属性的值调用操作
    2. EventTrigger 使用 EventTrigger 触发器根据事件(例如鼠标单击、页面加载或其他交互)调用操作。
    3. KeyTrigger 使用 KeyTrigger 触发器在键盘上按下组合键时调用操作。

    注意:- 这是 windows phone 可用的触发器,确保 UWP 在 blend SDK 中有这个触发器

    解决方法是使用DataTriggerBehaviorChangePropertyAction 来完成此操作。

    xmlns:ec="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" x:Class="XXX_XXXX"
    

    这对我有用

    <DataGrid x:Name="MyGrid"
                       Stretch="None"
                       HorizontalAlignment="Stretch" 
                       VerticalAlignment="Top">
      <interactivity:Interaction.Triggers>
       <ec:DataTrigger Binding="{Binding IsBackgroundBlue}" Value="True">
           <ec:ChangePropertyAction TargetObject="{Binding ElementName=MyGrid}" PropertyName="Background" Value="Blue" />
         </ec:DataTrigger>
        <!--  You could add your conditions here />  -->
      </interactivity:Interaction.Triggers>
      </DataGrid>
    

    请注意这可能不是正确的语法,我现在没有 IDE

    https://stackoverflow.com/a/31933556/1876572中的类似答案

    Msdn reference 使用可视状态管理器的触发器

    【讨论】:

    • 没关系。但是你能解释一下我们如何使用上面的代码根据条件应用样式吗?即,使用触发器
    • 是的。对我有帮助
    • 我会尝试我的视觉工作室中没有UWP,可能语法不正确
    • 好的,没问题。你能解释一下你给出的上述代码吗?
    • 这会将 放在控件本身中。有没有办法通过一种风格来实现这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2021-11-20
    • 2015-02-14
    相关资源
    最近更新 更多