zoukankan      html  css  js  c++  java
  • WPF 通过字典资源并使用动态绑定并控制全局字体大小

    代码下载

    代码最主要的就是对字典资源的使用和修改

    其中字典资源的集合可以特定指定也可以指定全部,看情况

    修改页面代码

     public class FontSizeCollection : INotifyPropertyChanged
        {
            private DictionaryEntry fontsizedata;
            public DictionaryEntry FontSizeData
            {
                get { return fontsizedata; }
                set
                {
                    fontsizedata = value;
                    FontSizeName = value.Key.ToString();
                    Size = (double)Application.Current.Resources[FontSizeName];
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("FontSizeName"));
                    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Size"));
                }
            }
          
            public ICollection Collection
            {
                get
                {
                    return Application.Current.Resources;
                }
               
            }
            private string ftsn;
    
            public string FontSizeName
            {
                get { return ftsn; }
                set
                {
                    ftsn = value;
                  
                }
            }
    
            private double size;
    
            public event PropertyChangedEventHandler PropertyChanged;
    
            public double Size
            {
                get { return size; }
                set
                {
                    size = value;
                    if (!string.IsNullOrWhiteSpace(FontSizeName))
                    {
                        Application.Current.Resources[FontSizeName] = value;
    
                        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Size"));
                    }
                }
            }
        }
    
        /// <summary>
        /// Window1.xaml 的交互逻辑
        /// </summary>
        public partial class Window1 : Window
        {
            private FontSizeCollection fsc = new FontSizeCollection();
    
            public Window1()
            {
                InitializeComponent();
                this.DataContext = fsc;
    
            }
        }

    修改页面xaml

        <StackPanel Orientation="Vertical">
            <ListBox x:Name="lb1" SelectionMode="Single"  
                     SelectedItem="{Binding FontSizeData,Mode=TwoWay}"
                     ItemsSource="{Binding  Collection ,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Key">
            </ListBox>
            <TextBlock Text="{Binding  ElementName=lb1,  Path=SelectedItem.Key}"  />
            <TextBlock Text="{Binding Size}" />
            <Slider Value="{Binding Size, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"   HorizontalAlignment="Stretch"  Minimum="0" Maximum="150"/>
        </StackPanel>
  • 相关阅读:
    大厂机密!30 个提升团队研发效能的锦囊
    爆肝 200 小时,我做了个编程导航!
    AJAX数据传输之请求与发送
    JS高级技巧之函数节流
    JS实战笔记
    JS获取DOM元素位置与大小
    JS实现快排算法
    构造可重用的Ajax对象
    JS字符串操作总结
    JS常用函数小结
  • 原文地址:https://www.cnblogs.com/T-ARF/p/14365129.html
Copyright © 2011-2022 走看看