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();
            }
    

      

  • 相关阅读:
    关于缓存雪崩穿透击穿等一些问题
    MethodHandler笔记
    并发总结(博客转载)
    负载均衡的几种算法Java实现代码
    SpringJdbc插入对象返回主键的值
    【Java基础】01-推荐参考材料
    【Java基础】注解
    【JSON】
    【Kafka】3-配置文件说明
    【Kafka】1-理论知识
  • 原文地址:https://www.cnblogs.com/IWings/p/6919427.html
Copyright © 2011-2022 走看看