zoukankan      html  css  js  c++  java
  • WPF MVVM框架下,VM界面写控件

    MVVM正常就是在View页面写样式,ViewModel页面写逻辑,但是有的时候纯在View页面写样式并不能满足需求。我最近的这个项目就遇到了,因此只能在VM页面去写样式控件,然后绑定到View页面。

    先看图

    各种税是需要变动的,当然,并不是由于这个原因才在VM页面写样式,而是因为不同的税是红色,相应的【】是黑色。

    在Textblock里用Run属性来进行变量添加,而要给Run添加颜色时又是统一的,因此只能用三个Run来分别来设置“【”,“税种”,“】”,但是前台又没有办法进行解析,因此只能用VM页面进行书写样式。

    字段

            private TextBlock textBlock;
    
            public TextBlock TextBlock
            {
                get { return textBlock; }
                set { textBlock = value;
                RaisePropertyChanged("TextBlock");
                }
            }

    VM下的Textblock样式

    TextBlock textblock = new TextBlock();
    textblock.TextWrapping = TextWrapping.Wrap;
    textblock.HorizontalAlignment = HorizontalAlignment.Center;
    textblock.Margin = new Thickness(20, 0, 20, 0);
    textblock.FontSize = 30;
    textblock.HorizontalAlignment = HorizontalAlignment.Left;
    textblock.VerticalAlignment = VerticalAlignment.Top;
    
    BrushConverter brushConverter = new BrushConverter();
    Brush Blackbrush = (Brush)brushConverter.ConvertFromString("#2c2c2c");
    Brush Redbrush = (Brush)brushConverter.ConvertFromString("#a80301");
    
    textblock.Foreground = Blackbrush;
    textblock.Inlines.Add(new Run() { Text = "       ", Foreground = Brushes.Red });
    textblock.Inlines.Add("您本月有");
    for (int i = 0; i < Mess.Count; i++)
    {
        textblock.Inlines.Add(new Run() { Text = "", Foreground = Blackbrush });
        textblock.Inlines.Add(new Run { Text = Mess[i].ToString(), Foreground = Redbrush });
        textblock.Inlines.Add(new Run() { Text = "", Foreground = Blackbrush });
    }
    textblock.Inlines.Add("税(费)种尚未申报,请在征期内申报。");
    
    TextBlock = textblock;

    XAML页面写个ScrollViewer接收一下就可以了

     <ScrollViewer Content="{Binding TextBlock}" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"/>
  • 相关阅读:
    系统集群安装
    用ASP.net判断上传文件类型的三种方法
    C#中利用JQuery实现视频网站
    云计算和大数据
    c# Dictionary 中Keys.ToArray<>方法的细节测试
    DateTime compare
    Dictionary的遍历和修改
    C# 键值对数据排序
    ant使用小结
    给我们的7句话
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/4707347.html
Copyright © 2011-2022 走看看