c# - XAML 中元素的条件样式

标签 c# xaml windows-phone-8

我正在构建一个具有以下 View 模型属性的 Windows Phone 8 应用程序:

public bool IsReply {get; set;}

在我的 xaml 代码中,我想区分两种情况:

  1. IsReply=True

    <Grid Margin="0,0,0,0">
    ...
    </Grid>
    
  2. IsReply=False

    <Grid Margin="40,0,0,0">
    ...
    </Grid>
    

基本上,我想根据 IsReply 的值来设置 Grid 元素的样式。我知道在 WPF Style.Triggers 中存在,但显然不在 WP 中。 我现在的解决方案是复制整个网格代码并将每个代码的可见性设置为数据转换器。但是,我觉得这应该更简单。

最佳答案

最简单的方法是使用带触发器的样式:

<Grid>
    <Grid.Style>
        <Style TargetType="Grid">
            <Setter Property="Margin" Value="40 0 0 0"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsReply}" Value="True">
                    <Setter Property="Margin" Value="0 0 0 0"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
</Grid>

关于c# - XAML 中元素的条件样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207329/

相关文章:

c# - 我自己托管的 NuGet 服务器不再正常工作

c# - C#中.ToString和 "as string"的区别

c# - WPF DataGrid 过滤 - CollectionViewSource 刷新

c# - 如何在 Windows Phone 8 中将文本写入文件?

windows-phone-8 - 如何为 caliburn.micro 添加自定义约定?

c# - 如果静态只读成员调用静态方法获取值,是否同步完成?

c# - System.Collections.Generic.LinkedList`1.AddLast(T 值)中的 NullReferenceException

c# - WP8.1 中的手势识别 block 文本框

c# - 当 UWP TextBlock 移出其容器时对其进行剪辑

c# - 重绘图像 WPF