c# – Silverlight中的条件样式?

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

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


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

查看所有标签

猜你喜欢:

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

迎接互联网的明天

迎接互联网的明天

邹静 / 电子工业 / 2011-6 / 55.00元

《迎接互联网的明天-玩转3D Web(附盘)》,全书共5章,第1章主要阐述了国内外空前繁荣的3D互联网技术领域,以及这些领域透射出来的潜在商机;第2章主要用当下比较流行的Flash编程语言ActionScript 3,来向大家介绍面向对象编程语言的思想概念,以及一些3D渲染技术的入门知识;第3章注重建模知识的运用,主要运用WireFusion和3ds Max来制作3D网页;第4章主要介绍3D游戏编......一起来看看 《迎接互联网的明天》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码