zoukankan      html  css  js  c++  java
  • WPF中使用资源

        这节讲一下如何在WPF中使用资源。

        

    01
    了解资源

        在编程中,一个变量,一段代码,一张图片,一段视频或者音频,这种可以拿来为我所用的东西就可以称之为资源,一个让人眼前一亮的程序,可能会使用到许许多多的资源。在WPF中,除了常用的根据路径引用资源文件,还为我们提供了管理资源数据的“对象级”资源,以及Resources.resx文件,前者通过一个类型为ResouceDictionary的键值对对象来管理页面中定义的资源,后者则是一个资源表,可以供我们全局使用(当前并不是前者不能让我们全局使用,我们在App.xaml中定义的资源是可以被全局使用的)。

    02
    "对象级"资源

        我们可以在XAML页面定义一些资源供我们使用,请先看如下代码:

        在Window.Resources标签内的ResouceDictionary中可以定义资源,通过key属性指定资源的标识。此处我定义了key为btn_bgc字符串资源,该资源被Grid中的Button.Content属性使用,运行效果如下:

     

        在Xaml中,我们可以使用标记扩展中的StaticResourceDynamicResource指令引用资源,该两者的区别是,使用StaticResource,会在程序启动时读取一次资源数据,后续如果资源数据变动,引用者是不会知道的;而DynamicResource则是会多次读取,动态更新。

        除了在Xaml中使用资源,我们也可以在代码中通过Resoure对象获取,请看如下代码:

        从后台代码中,我们可以使用FindResource方法或访问Resources对象通过索引器的方式获取,但两者还是有区别的,FindResource方法的查找面很广,在App.Xaml中定义的资源,也会被找到,而Resources对象则是只会找本页面定义的资源。

    03
    Resources.resx文件

        在项目的Properties下展开可以找到这个文件:

        双击打开后,是个列表,我们可以看到是个表格界面:

        左上角可以指定资源是string还是其它:

        默认情况下,该文件的访问级别(Access Modifier)是Internal,也就是在代码中可以访问,一般来说,应该改为Pubilc,这样在Xaml中也可以访问。

        在代码中获取该资源如下:

        在Xaml中获取该资源如下:

        在.NET 5版本中,默认去掉了Properties这个文件夹,但如果需要的话我们依然可以通过手动为项目添加Resources.resx文件。

     

     

  • 相关阅读:
    scala02
    5.主从复制
    4.mysql锁机制
    3mysql查询截取分析
    2.2mysql 索引优化
    2.1mysql索引优化分析
    1.mysql 架构介绍命令,配置文件,架构,存储引擎,
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
    Glide使用
    网络通信框架Retrofit2
  • 原文地址:https://www.cnblogs.com/charlesmvp/p/15646507.html
Copyright © 2011-2022 走看看