WPF中的资源

WPF中的资源

WPF中资源分为 程序级资源对象级资源

对象级资源

每个界面元素有一个Resources属性就是他自己的对象级资源
    Resources 是ResourceDictionary类型,它继承自FrameworkElement.
    Resources 中保存的是K-V形式数据,Value类型为object,使用时需要类型转换。

使用
1.引入命名空间
2.定义资源
3.引用资源
例:

xmlns:sys = "...System;...mscorlib"
...
<ResourceDictionary>
    <sys:String x:Key = "str">ABCD</sys:String>
    <sys:Double x:Key = "dbl">3.1415926</sys:Double>
</ResourceDictionary>
...
<TextBlock Text = "{StaticResource ResourceKey = str }"/>
...
string text = (string) this.FindResource("str");

可以用Source属性存储文件路径

<Window.Resources>
        <ResourcesDictionary Source = "ShingRed.xaml"/>
</Window.Resources>

静态,动态资源的使用

<Button Content = "{StaticResource res1}"/>
<Button Content = "{DynamicResource res2}"/>
...
this.Resources["res1"] = new TextBlock(){Text = "ABC"}//无效
this.Resources["res2"] = new TextBlock(){Text = "ABC"}//有效

二进制资源

图标,图片,文本,音频,视频

字符串在Propertis中Resources.resx中添加

Resources的访问级别要由internal 改为 public

使用:

xmlns:prop = "...Properties"
...
<TextBlock Text = "{x:Static prop:Resources.UserName}"/>

...
this.textBlockPassword.Text = Properties.Resources.Password;

常常用在国际化,本地化中。换肤等。

图标,图片,音频,视频

在项目中新建文件夹目录,在文件夹上右键添加现有项,选中资源。

让文件编译成二进制:在文件上右键,属性,操作设置成Resource。

PackURI访问二进制资源

<Image x:Name = "ImageBg"  strech = "Fill" Source = "Resource/Images/Rafale.jpg"/>

“Resource/Images/Rafale.jpg”—-Urikind.Rolative
“pack://application,,,/ Resource/Images/Rafale.jpg”—-Urikind.Absolute

Uri imgUri = new Uri(@"Resources/Images/Rafale.jpg",Urikind.Rolative);
this.imageBg.Source = new BitmapImagea(imgUri);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值