在 Expression Blend 2013 中添加 DATATRIGGER 的可视化方式

Posted

技术标签:

【中文标题】在 Expression Blend 2013 中添加 DATATRIGGER 的可视化方式【英文标题】:Visual way to add DATATRIGGER in Expression Blend 2013 【发布时间】:2014-02-05 10:28:28 【问题描述】:

使用表达式混合 2013 将数据触发器附加到 UI 元素的正确过程是什么?

如果我直接在 xaml 中编写 datatrigger 效果很好,但我想知道是否有“视觉方式”来做到这一点。

例如,创建一个 listboxitem 样式我正在做这样的事情:


<DataTemplate x:Key="BoundingBoxTemplate" DataType="x:Type is:BoundingBoxViewModel" >
    <DataTemplate.Triggers>
        <DataTrigger Binding="Binding IsBorderVisible" Value="True">
            <Setter TargetName="InsideRectangle" Property="Stroke" Value="Blue" />
        </DataTrigger>
    </DataTemplate.Triggers>
    <Grid>
        <Rectangle x:Name="InsideRectangle" 
                   Width="Binding Width" 
                   Height="Binding Height" 
                   Fill="Black" 
                   SnapsToDevicePixels="True" />
    </Grid>
</DataTemplate>

谢谢 洛伦佐

【问题讨论】:

【参考方案1】:

这是一个使用 GUI 的示例。

考虑一下这个窗口:

我的示例中的目标是在 Checkbox.IsChecked 属性更改为 True 时使 RectangleStroke 变为蓝色。

首先,我们必须从Assets 添加一个ChangePropertyAction > Behaviors

将其拖放到窗口/模板/任何东西上。我把它放到窗口里:

现在,如果您选择它,您可以在Properties 中指定Trigger

我将TriggerType 设置为DataTrigger,将Binding 设置为Checkbox.IsChecked,并将Trigger 所需的值设置为True

接下来,我指定在Trigger 触发时应更改的Value

我将Target 设置为Rectangle,将Stroke 指定为PropertyName 并将Value 设置为当Trigger 触发为蓝色时应获取此属性。

如果我现在启动应用程序,这是我检查CheckBox 时的结果:

【讨论】:

以上是关于在 Expression Blend 2013 中添加 DATATRIGGER 的可视化方式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Expression Blend 中将控件类型从按钮更改为切换按钮?

Windows Phone 8 和 Microsoft Expression Blend 4

WPF和Expression Blend开发实例:模拟QQ登陆界面打开和关闭特效

零元学Expression Blend 4 - Chapter 30 8个Expression Blend4的快捷

Silverlight 5 的 Microsoft Expression Blend 预览版已过期。接下来是啥?

Expression Blend学习四控件