WPF 资源

1 Window.Resources

1.1 资源的声名和使用

资源是可以应用到不同位置上重复使用的对象,是资源使 样式 和 模板 可以重复使用。每个WPF界面元素控件都拥有 Resources 属性,(属性类型:ResourceDictionary)也就是资源字典,其是以键值对的形式存储。当需要某个资源时,可以通过 资源键 索引到 资源对象。 

这个例子在Window控件根下声明:

两个纯色画刷资源,x:key 定义资源唯一标识,定义了颜色值。

图中按钮宽度是xaml中的常量资源(c#中的Double类型),需要引入命名空间。

xmlns:system="clr-namespace:System;assembly=System.Runtime"

在xaml中通过 {StaticResource  资源键 } 使用资源

编辑效果图:

以上提到WPF元素都具有Resources属性,XAML加载程序处理Border上的Background属性值时,会先查看Border元素的资源字典。如果没有,就在上一级Grid查询,以此类推直到在Window中找到。否则会抛出找不到资源异常。

在Window根元素定义资源好处是:该窗体范围内所有元素都可以使用到该资源,避免代码冗余。

1.2 静态和动态资源

以上内容在使用资源时,用到了StaticResource标记资源键。程序加载后,没办法改变。

静态资源StaticResource标记后 :指程序加载后,不需要改变的资源。

动态资源DynamicResource 标记后 : 指程序加载后,可以通过用户操作事件,触发改变的资源。

以上内容将StaticResource标记改为DynamicResource 标记,Button元素添加Click单击事件

 // 程序后台改变资源
    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        // #2e6a99 #f49926 RGB颜色值
        this.Resources["Brush1"] = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2e6a99"));
        this.Resources["Brush2"]=new SolidColorBrush((Color)ColorConverter.ConvertFromString("#f49926"));
    }

单击事件后,

 

 1.3 资源的3种声明方式

1:Window根下声明,范围:窗体下的元素都可以访问资源。上文已演示。

2:App.xaml文件下声明,范围:所有窗体的元素都可以访问该资源。

3:  创建资源字典文件声明,通过MergedDictionarier 属性合并到App.xaml文件中。

范围:和第2种一样,当资源较多时,可以对App.xaml文件进行解耦,避免代码冗余。

资源字典文件TextBlockDic.xaml在App.xaml文件中合并。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值