WPF 资源

        每个WPF的界面元素都具有一个名为Resources的属性,这个属性继承自FrameworkElement类,其类型为ResourceDictionary。ResourceDictionary能够以"键-值"对的形式存储资源,当许需要使用某个资源时,使用"键-值"对可以索引到资源对象。如图所示,按键的背景色设置成资源中的对应key的value值:

WPF 资源_第1张图片 

    
        
            
            
        
    
    
       
            

引用资源:动态引用资源,静态引用资源
动态引用资源:当资源被改变的时候,引用该资源的对象会同步发生变化;
  通过xaml标记扩展语法 XX属性 = "{DynamicResource myBrush}"
静态引用资源:程序启动时候加载该资源后,无论资源发生变化,程序不会发生变化
  通过xaml标记扩展语法 XX属性 = "{StaticResource myBrush}"

向程序添加二进制资源

        资源文件在目标文件里以二进制数据的形式存在、形成目标文件的资源段(Resource Section),使用时数据会被提取出来。操作如下:

WPF 资源_第2张图片

代码中使用:


    
        
    

使用Pack URI路径访问二进制资源

        
            
            
        

系统资源
        当某个元素查找资源时,应用程序资源仍然不是最后一站。如果没有在应用程序资源中找到所需的资源,元素还会继续查找系统资源。
系统资源的三个类

  • SystemColors   访问系统颜色设置。
  • SystemFonts    访问字体设置。
  • SystemParamerers  封装了大量的设置列表,这些设置描述了各种屏幕像素的标准尺寸、键盘和鼠标设置、屏幕尺寸以及各种图形效果(如热跟踪、阴影以及拖动窗口时显示窗口内容)是否已经打开。

后台查询资源

  public MainWindow()
 {
     InitializeComponent();
     //读取Resources资源
     txtProduct.Text = Properties.Resources.UserName;

     //读取Settings资源
     string title = Properties.Settings.Default.Title;
     txtTitle.Text = title;
     //设置和保存Settings资源
     Properties.Settings.Default.Title = "Hello World!";
     Properties.Settings.Default.Save();
 }

//在事件源中查询资源
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     Button cmd = (Button)sender;
     //FindResource查询资源
     SolidColorBrush brush = (SolidColorBrush)cmd.FindResource("backgroudColor");
 }

 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     //查询本窗体资源
     SolidColorBrush b =  (SolidColorBrush)this.Resources["backgroudColor"];
     //查询程序公共资源
    var p = Application.Current.Resources["product"];
 }

资源字典
         如果希望多个项目中共享资源,可创建资源字典。资源字典只是xaml文档,除了存储希望使用的资源外,不做其他任何事情。


    
        WPF资源
    
    

使用资源字典将其整合到应用程序资源中:


    
        
            
                
            
        
    

资源实例:https://download.csdn.net/download/lvxingzhe3/87642943

你可能感兴趣的:(#,WPF系统学习,wpf)