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"/>
  • 相关阅读:
    scss的初级学习随笔小计
    trimpash实现jd选项卡首次输入
    透明度动画
    js原生动画一匀速动画
    filter滤镜的使用
    scss实现不同方向的三角
    模板方法模式-考题抄错,会做也白搭
    设计模式概述
    mysql数据库
    夜饮东坡醒复醉
  • 原文地址:https://www.cnblogs.com/ZXdeveloper/p/4707347.html
Copyright © 2011-2022 走看看