当前位置: 首页 > news >正文

【wpf】ResourceDictionary 字典资源的用法

如果你的字典资源是写在启动项目的App.xaml里

<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="pack://application:,,,/YourNonStartupProject;component/Resources/SharedResources.xaml" /></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</Application.Resources>

C# 进行调用

Style x = App.Current.Resources["RoundedRectangle"]; 

如何引用非启动项目的资源

1. 在非启动项目中定义资源

假设你在非启动项目中有一个 ResourceDictionary,你可以像下面这样在 XAML 文件中定义一个资源。

例如,在非启动项目的 Resources/SharedResources.xaml 文件中定义资源:

<!-- SharedResources.xaml -->
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><SolidColorBrush x:Key="RoundedRectangle" Color="Red"/>
</ResourceDictionary>

2. 在非启动项目中直接引用和使用资源

要在非启动项目的代码中直接使用这些资源,可以通过加载 ResourceDictionary 来实现。你可以在任何地方加载和使用它,只要该项目已引用资源字典所在的项目。

例如,如果你有一个 RoundedRectangle 资源在 SharedResources.xaml 中,你可以在非启动项目的代码中直接加载并使用它:

var resourceDictionary = new ResourceDictionary
{Source = new Uri("pack://application:,,,/YourNonStartupProject;component/Resources/SharedResources.xaml")
};var roundedRectangle = resourceDictionary["RoundedRectangle"] as SolidColorBrush;

这里的 YourNonStartupProject 是非启动项目的名称,Resources/SharedResources.xaml 是资源文件的路径。

在启动项目中引用非启动项目的资源

如果你希望启动项目能够访问非启动项目中的资源字典,你需要确保启动项目引用了非启动项目,并且在启动项目的 App.xaml 中引用该资源字典:

<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="pack://application:,,,/YourNonStartupProject;component/Resources/SharedResources.xaml" /></ResourceDictionary.MergedDictionaries></ResourceDictionary>
</Application.Resources>

然后,你就可以在启动项目中使用 App.Current.Resources["RoundedRectangle"] 来访问该资源。

总结

  • 你可以在非启动项目中直接创建资源字典并引用它。
  • 如果要在非启动项目中使用资源,可以通过代码动态加载该资源字典。
  • 如果要让启动项目访问非启动项目的资源,可以在启动项目的 App.xaml 中合并该资源字典。

这种方式可以避免依赖于 App.Current,并直接在代码中使用资源字典。

http://www.lryc.cn/news/480424.html

相关文章:

  • Foliate:沉浸式阅读!!!
  • 【excel基本操作-sumif绝对引用和相对引用
  • word及Excel常见功能使用
  • 网页中的某个元素高度突然无法设置
  • springboot给不同用户动态定制请求结果思路
  • 【网络】HTTP(超文本传输协议)详解
  • poll()方法和remove()方法的区别是什么?
  • 小程序跳转另一个小程序
  • 介绍一下数组(c基础)(详细版)
  • 工业主板在汽车制造中的应用
  • 博弈论(所有情况最优解)——课堂笔记
  • 深入提升Python编程能力的全方位指南
  • 如何使用 Python 语言的正则表达式进行网页数据的爬取?
  • 剑指offer第七、八天
  • 有哪些常见的方法可以评估中断处理能力?
  • Android GPU纹理数据拷贝
  • 浏览器端直播推流实现——系统篇
  • HDFS和HBase跨集群数据迁移 源码
  • opencv实时弯道检测
  • 计算机网络综合题
  • 【ARM Linux 系统稳定性分析入门及渐进 1.2 -- Crash 工具依赖内容】
  • 「C/C++」C++标准库 之 #include<exception> 异常处理库
  • YOLOv7-0.1部分代码阅读笔记-experimental.py
  • 【大数据学习 | kafka】简述kafka的消费者consumer
  • 系统架构设计师论文:论湖仓一体架构及其应用
  • 电磁兼容(EMC):GB 4343.1喀呖声 详解
  • 纯血鸿蒙Native层支持说明
  • learn C++ NO.31——类型转换
  • 重学 Android 自定义 View 系列(三):自定义步数进度条
  • 海南华志亿星电子商务有限公司赋能抖音商家成长