c# – Silverlight中的条件样式?

栏目: ASP.NET · 发布时间: 7年前

内容简介:我所遇到的问题是,每个链接都被弄脏了.一个红色,一个蓝色,一个绿色等有没有一种方法来样式这些项目,而不牺牲使用数据模板的项目控件的动态?http://stackoverflow.com/questions/3034261/conditional-styling-in-silverlight

我所遇到的问题是,每个链接都被弄脏了.一个红色,一个蓝色,一个绿色等有没有一种方法来样式这些项目,而不牺牲使用数据模板的项目控件的动态?

我已经使用一个简单的转换器在视图模型的属性,例如让我们说你有一个布尔属性,你想要控制一个风格,你可以做到这一点.

public class BoolToStyleConverter : IValueConverter
{
    public Style TrueStyle{ get; set; }
    public Style FalseStyle{ get; set; }
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return ((bool)value) ? TrueStyle : FalseStyle;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

那么作为一种资源,你可以定义你的两种风格

<common:BoolToStyleConverter x:Key="BoldTextConverter">
        <common:BoolToStyleConverter.TrueStyle>
            <Style TargetType="TextBlock">
                <Setter Property="FontWeight"
                        Value="Bold"></Setter>
            </Style>
        </common:BoolToStyleConverter.TrueStyle>
        <common:BoolToStyleConverter.FalseStyle>
            <Style TargetType="TextBlock">
                <Setter Property="FontWeight"
                        Value="Normal"></Setter>
            </Style>
        </common:BoolToStyleConverter.FalseStyle>
    </common:BoolToStyleConverter>

那么你可以将它应用到你的对象这样…

<TextBlock Text="{Binding Description}"
           Margin="20,4,4,4"
           Style="{Binding IsConfirmed, Converter={StaticResource BoldTextConverter}}"></TextBlock>

其中IsConfirmed是viewmodel上的布尔属性,如果IsConfirmed属性更改,这也将保持同步的样式.

如果要使用比布尔更复杂的条件,您可以随时在转换器中创建一个对象到“样式”的字典,然后让转换器进行查找,但是我发现通常布尔工作在大多数情况下.

http://stackoverflow.com/questions/3034261/conditional-styling-in-silverlight


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

实战Linux编程精髓

实战Linux编程精髓

罗宾斯 / 中国电力出版社 / 2005-7 / 59.80元

编写应用软件,特别是那些比较重要的软件,毫无疑问要涉及到系统调用。在UNIX/Linux环境下编程更是如此。要想编写优秀的软件,就必须熟悉这些系统调用的方方面面。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软件。全书主要分为三大部分:第一部分讨论了基本的编程问题,包括Linux编程环境、基本的文件和进程管理与操作、内存操作,还介绍了一些基本的库接口。第二部分比较深入地讨论了......一起来看看 《实战Linux编程精髓》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具