zoukankan      html  css  js  c++  java
  • wpf绑定静态变量,模拟rem单位

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WpfApplication1
    {
        public class Class1: INotifyPropertyChanged
        {
            public SizeConverter rem
            {
                get;
            }
            public Class1()
            {
                rem = new SizeConverter();
            } 
            public event PropertyChangedEventHandler PropertyChanged;
            public void RaiseSizeChanged()
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("rem"));
                }
            }
        }
    
        public class SizeConverter : Dictionary<string, double>
        {
            public static double S = 1;
            public new double this[string key]
            {
                get
                {
                    return Convert.ToInt32(key) / S;
                }
                set
                {
    
                }
            }
    
    
        }
    }
    

      

    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <local:Class1 x:Key="a"></local:Class1>
        </Window.Resources>
        <Grid>
            <Label x:Name="lbl" Content="hello" FontSize="{Binding Source={StaticResource a},Path=rem[80]}"></Label>
            <Button Content="click" Click="Button_Click" Margin="140,201,203,49"></Button>
        </Grid>
    </Window>
    

     当全局大小计算公式改变,可以这样通知绑定者去刷新

    private void Button_Click(object sender, RoutedEventArgs e)
            {
                SizeConverter.S = 2;
                ((Class1)Resources["a"]).RaiseSizeChanged();
            }
    

      

  • 相关阅读:
    日期间隔之年、月、日、时、分、秒
    加减年、月、日、时、分、秒
    求总和的百分比
    返回最值所在行数据
    返回各部门工资排名前三位的员工
    生成累计和
    将字符和数字数据分离
    从字符串中删除不需要的字符
    计算字符在字符串中出现的次数
    字符串文字中包含引号
  • 原文地址:https://www.cnblogs.com/IWings/p/6919427.html
Copyright © 2011-2022 走看看