WPF资源

WPF资源,资源通常指定为页面根元素或应用程序的 Resources 属性值。

主要用于对控件的样式进行设置,如字体大小颜色控制,

图形图片的嵌入等。

1.根据编译和运行状态,可以分为静态资源和动态资源。

静态资源在编译好了以后,不会随程序运行而改变,就算对静态资源

做了修改,依然没用的;而动态资源可以在运行过程进行修改。

静态资源和动态资源的区别,是在运行时对引用资源的内容修改是否引起资源本身的变化。

比如StaticResource key,运行时修改key所代表的资源内容,不会引起程序改变。

而DynamicResource key,运行时修改key所代表的资源内容,会通知资源改变。

注意这里的key是不变的,key所代表的内容被修改。

如果你在程序中把key1改成key2,无论静态资源还是动态资源,都会被修改的。

2.根据资源所在位置,可以分为四类:

下面介绍按照静态资源作为示例,动态资源同样适用,

只是引用时候静态资源是StaticResource key

动态资源是DynamicResource key,其中key就是资源中x:key中的key。

(1)应用程序资源,定义在App.xaml中,对整个应用程序有效,

如下示例:

    <Application.Resources>
            <sys:String x:Key="str">应用资源字</sys:String>
            <SolidColorBrush x:Key="AppResource" Color="Red"></SolidColorBrush>
    </Application.Resources>

(2)窗体级资源,定义在某窗体的xaml,对当前窗体有效

    <Window.Resources>
        <SolidColorBrush x:Key="WindowResource" Color="Blue"></SolidColorBrush>
        <ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary> 这里引用的文件资源
    </Window.Resources>

(3)对象资源,对当前对象有效,如:

    <Grid>
        <Grid.Resources>
            <sys:String x:Key="str">对象资源字</sys:String>
            <SolidColorBrush x:Key="ObjectResource" Color="Yellow"></SolidColorBrush>
        </Grid.Resources>
        <Button Width="100"  Height="50" Content="{StaticResource str}" Background="{StaticResource WindowResource}">
        </Button>
    </Grid>

(4)文件资源,定义在单独的文件中,定义个xaml资源文件,

根目录是ResourceDictionary,如下:

<ResourceDictionary 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">  
    <sys:String x:Key="str">文件资源字</sys:String>
    <SolidColorBrush x:Key="WindowResource" Color="Green"></SolidColorBrush>
</ResourceDictionary>

在应用程序中,如果资源名字相同,那么应用在控件上的资源会按照优先级排序应用。

首先,查找当前对象上的资源,然后再到窗体,最后查找应用程序。

对于文件资源,要看是在那里引用它。如果在对象上引用,它就作为对象资源,依次类推。

3.在代码中查找资源,可以适用Resources["str2"];

或者this.FindResource("str2");

其中str2代表资源的key。

this.button1.Content = Resources["str2"];

 

 

转载于:https://www.cnblogs.com/liujp/archive/2012/08/10/2632037.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值