WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)

一、WPF对象级(Window对象)资源的定义与查找

实例一: StaticResource 静态资源(如:皮肤配置方案,运行后不改变)


    
    
    
       
        
            
                字符
            
            
                3.1415926
            
               
    
    
        
    

 

简化:

 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="Window12" Height="300" Width="300">
   
   
   

   

   
       
   

 

在C#代码中,使用定义的XAML代码中定义的资源。

 

            //string text = (string)FindResource("str");
            string text = (string)this.Resources["str"];//键值获取
            this.textblock1.Text = text;

 

 

 

实例二:把资源像CSS或JavaScript放到独立文件中。

 

新建 “资源字典”

WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)_第1张图片

Themes 文件夹中的 ShinyRed.xaml

 


    字符
    3.1415926

 


    
        
    
    
        
    

 

合并多个外部资源字典成为本地字典

 

   
       
            <ResourceDictionary.MergedDictionaries>
               
            </ResourceDictionary.MergedDictionaries>
       

   

 

实例三、DynamicResource 动态资源(如:运行时,允许用户更改皮肤)

 


    
        
    
    
        

 

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.Resources["res1"] = new TextBlock { Text="换皮肤"};
        }

 

 

 

三、向程序添加二进制资源

1、Resources.resx 文件添加 字符串二进制资源

双击 Resources.resx 文件

WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)_第2张图片

 

代码:

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prop="clr-namespace:WpfApplication.Properties"
        Title="Window13" Height="300" Width="300">
   
       
   

 

2、Resources.resx 文件添加 图片二进制资源

新建文件夹

WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)_第3张图片

 

设置图片属性

WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)_第4张图片

 

代码:

 


或者

 

 

img.Source = new BitmapImage(new Uri(@"Resources/Images/4.jpg", UriKind.Relative));

 

 

 

四、资源绑定树(XmlDataProvider:XML 数据

效果:

WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)_第5张图片

TreeFile.xaml

XPath="FileSystem/Folder"  生成数据集合的 XPath 查询


    
        
            
                
                    
                    
                
                
                    
                    
                
                
                    
                    
                    
                    
                    
                
            
        
    

 

 

App.xaml

 


    
    
        
            
                
                
                
                
            
        
    

 

 

ViewModel层

 


    
        
    
    
        
            
            
            
        
        
            
            
        
        
            
                
                        
                
            
        
        
    

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(WPF/Blend)