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

      

  • 相关阅读:
    转:Swagger2自动生成接口文档和Mock模拟数据
    InfluxDB
    springboot application.properties文件加载顺序
    maven surefire插件与testng
    spring-boot项目学习路径
    collection 与stream与lambd表达式的结合使用
    转:Java中Lambda表达式的使用
    RPC之Thrift 介绍及java实例
    win10中shift+右键,在此处打开cmd窗口
    激活xmind的方法
  • 原文地址:https://www.cnblogs.com/IWings/p/6919427.html
Copyright © 2011-2022 走看看