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


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

查看所有标签

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

Web标准设计

Web标准设计

刘杰(嗷嗷) / 清华大学出版社 / 2009-1 / 75.00元

一扇经常开启的门的铰链不需要润滑油。 一条湍急的河流不会变得污浊。 无论是声音还是想法都不可能在真空中传播。 Web标准如果不用就会腐朽。 这世界真奇妙! 专题页面:http://www.aoao.org.cn/book/web-standards-design/一起来看看 《Web标准设计》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器