首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何以编程方式构造pack: URI来引用不同程序集中的资源?

以编程方式构造pack: URI来引用不同程序集中的资源,可以通过以下步骤实现:

  1. 构造pack: URI的基本格式为:pack://application:,,,/AssemblyName;component/ResourcePath。其中,AssemblyName表示程序集的名称,ResourcePath表示资源的路径。
  2. 首先,确定要引用资源的程序集名称和资源路径。程序集名称是指包含资源的程序集的名称,资源路径是指资源在程序集中的相对路径。
  3. 在代码中,使用System.Uri类来构造pack: URI。可以通过Uri构造函数传入pack: URI的完整字符串,或者使用UriBuilder类来逐步构建URI。
  4. 以下是一个示例代码,演示如何以编程方式构造pack: URI来引用不同程序集中的资源:
代码语言:txt
复制
string assemblyName = "MyAssembly";
string resourcePath = "/Resources/MyImage.png";

UriBuilder uriBuilder = new UriBuilder();
uriBuilder.Scheme = "pack";
uriBuilder.Host = "application";
uriBuilder.Path = $",,,/{assemblyName};component{resourcePath}";

Uri resourceUri = uriBuilder.Uri;

在上述示例中,我们构造了一个pack: URI,引用了名为"MyImage.png"的资源,该资源位于名为"MyAssembly"的程序集的"/Resources"路径下。

  1. 对于不同类型的资源,可以根据需要调整资源路径。例如,对于XAML文件,资源路径应该是XAML文件的相对路径;对于图像文件,资源路径应该是图像文件的相对路径。
  2. 在使用pack: URI引用资源时,可以将其传递给适当的API,例如WPF的Image控件的Source属性,以加载和显示资源。

总结起来,以编程方式构造pack: URI来引用不同程序集中的资源,需要确定程序集名称和资源路径,并使用Uri类或UriBuilder类构造pack: URI。通过使用正确的资源路径和传递给适当的API,可以成功加载和使用资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WPF备忘录(7)WPF图片资源路径介绍

    将Content.jpg图片拷贝至应用程序的Debug目录中,ImgContent控件可显示图片。      生成操作设置为Resource,生成的时候资源将添加到程序集中。...与直接把资源放置在程序运行目录不同的是,添加Content资源文件,会向程序集(AssemblyAssociatedContentFile)中添加一个定制特性,该程序集记录文件是否存在及其相对位置。...可见在改变Content资源的时候,程序集中的定制特性没有做相应的变化。       删除XAML中的Source属性,在后台为两个图片控件设置Source属性。有如下三种方式。  ...第三种方式可以访问网站运行目录下的Content资源文件以及完全松散的文件。完全松散的文件指那些没有添加到项目中,只是拷贝在程序目录中的文件。应用程序根本不知道它的存在。      ...它是pack://application:,,,/DllName;Component/Content.jpg的简写。将DllName替换成其他程序集,就可以访问其他程序集的资源。

    1.3K50

    深入浅出话资源

    文件添加进项目并使用Source属性进行引用,你的程序就立刻变的光鲜照人。...1.3       向程序集中添加二进制资源 对于资源这个概念,对于WPF初学者会感到迷惑,因为早在WPF出现之前Window应用程序就已经能够携带资源了。...常见的应用程序资源有图标、图片、文本、音频、视频等,各种编程语言的编译器或者资源编译器都有能力把这些文件编译进目标文件(最终的.exe文件或者.dll文件)。...1.4                使用PACK URI路径访问二进制资源 WPF对二进制资源的访问有自己的一套方法,称为PACK URI路径。有时候死记硬背能够让读者快速学习又能帮助作者偷点懒。...在使用pack uri路径时有以下几点需要注意: Pack URI使用的是从右向左的正斜线(/)表示路径。

    1.8K20

    WPF 使用 VisualStudio 2017 项目文件

    假如在 项目文件 放一张图片,首先新建一个项目,然后随意找一张图片,放在项目上 注意需要查看图片的属性,如果图片的生成不是 Resources 那么在使用下面的代码还是找不到 最简单在 xaml 获取项目文件的方式是直接写相对...:,,,/B;component/NearzooRasterCairralJeajismowwir.jpg"> 需要知道,程序集和项目的名字是可以不相同的,如刚才的 B 项目,实际上程序集和项目名字不相同...,请看下图 所以发现自己找不到资源,可能是项目名字和程序集不相同,需要右击查看程序集 pack://application:,,,/lindexi;component.../NearzooRasterCairralJeajismowwir.jpg"> 如果引用了相同程序集的不同版本,就需要在路径写上版本,格式是pack://application:,,,/...var resourceStream = Application.GetResourceStream(new Uri("pack://application:,,,/lindexi;component/

    45110

    【愚公系列】2023年09月 WPF控件专题 Image控件详解

    原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。...自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...Image控件具备自适应大小的能力,可以根据容器大小自动调整图像的大小,从而更好地适应不同的窗口布局。 显示图形资源。...// pack URI 方案 pack://授权/路径 //授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置。...//siteoforigin 图片文件 生成:内容 application---资源、内容 //imgPic.Source = new BitmapImage(new Uri("pack

    74800

    设计规则

    CA1014:用 CLSCompliantAttribute 标记程序集 公共语言规范 (CLS) 定义了程序集在跨编程语言使用时必须符合的命名限制、数据类型和规则。...CA1016:用 AssemblyVersionAttribute 标记程序集 .NET 使用版本号唯一地标识程序集,并绑定到具有强名称的程序集中的类型。 版本号与版本和发行者策略一起使用。...CA1021:避免使用 out 参数 通过引用(使用 out 或 ref)传递类型要求具有使用指针的经验,了解值类型和引用类型的不同之处,以及能处理具有多个返回值的方法。...CA1045:不要通过引用来传递类型 通过引用(使用 out 或 ref)传递类型要求具有使用指针的经验,了解值类型和引用类型的不同之处,以及能处理具有多个返回值的方法。...由于调用静态成员不需要类型的示例,因此没必要使用构造函数。 为安全起见,字符串重载应使用字符串自变量调用统一资源标识符 (URI) 重载。

    2K20

    WinRT

    异步编程:WinRT广泛采用异步编程模式,以提高应用程序的响应性和性能。许多WinRT API都提供了异步版本,允许长时间运行的操作(如文件I/O和网络请求)在后台执行而不阻塞UI线程。...应用程序只能访问它们明确声明的资源和权限,减少了对系统的潜在风险。...应用商店分发:WinRT应用可以通过Microsoft Store进行分发,提供了一种简单的方式来发布和更新应用程序,同时也为开发者提供了一个全球市场。...通过框架投射,开发者可以使用自己熟悉的编程语言(如C#、C++、JavaScript)来调用WinRT API,而不需要直接处理底层的COM接口和类型系统。...在解决方案资源管理器中,右键点击“引用”,选择“添加引用”,然后选择你的WinRT组件项目。

    7200

    框架设计原则和规范(二)

    在包含公共类型的程序集中使用CLSCompliant(true)的修饰属性 表示符合CLS规范 1.10.2....在包含公共类型的程序集中使用AssemblyVersionAttrubue的修饰属性 1.10.3. 考虑在程序集版本号中使用格式 1.10.3.1....要把构造函数的参数列表当作设置主要属性的快捷方式 2.3.4. 要用相同的名字来命名构造函数的参数和属性,如果定义该构造函数参数的目的就是为了设置对应的属性。...要把所有输出参数放在以值方式和引用方式传递的参数后面 2.8.5. 要在覆盖成员或者实现接口成员时保持参数命名的一致 2.8.6. 枚举和布尔值的选择 2.8.6.1....避免使用输出参数或引用参数 值类型和引用类型的区别不容易被理解 2.8.8.2. 不要以引用方式传递引用类型 2.8.9. 参数数量可变的成员(方法) 2.8.9.1.

    1.4K50

    细数Spring那些最常见的面试问题

    Spring 应用程序有哪些不同组件? 1.8. 使用 Spring 有哪些方式? 2. 依赖注入(Ioc) 2.1. 什么是 Spring IOC 容器? 2.2. 什么是依赖注入? 2.3....Spring 面向切面编程(AOP) - 提供面向切面编程的功能。 Bean 配置文件 - 包含类的信息以及如何配置它们。 用户程序 - 它使用接口。 1.8. 使用 Spring 有哪些方式?...更多spring内容,可以看这里:Spring内容合集 自动装配的不同模式: no - 这是默认设置,表示没有自动装配。应使用显式 bean 引用进行装配。...MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。 7.2....DispatcherServlet 根据 -servlet.xml 中的配置对请求的 URL 进行解析,得到请求资源标识符(URI)。

    69440

    Spring常见面试题

    Spring 面向切面编程(AOP) - 提供面向切面编程的功能。 Bean 配置文件 - 包含类的信息以及如何配置它们。 用户程序 - 它使用接口。 使用 Spring 有哪些方式?...通常,依赖注入可以通过三种方式完成,即: 构造函数注入 setter 注入 接口注入 在 Spring Framework 中,仅使用构造函数和 setter 注入。...支持的事务管理类型 Spring 支持两种类型的事务管理: 程序化事务管理:在此过程中,在编程的帮助下管理事务。...MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。...DispatcherServlet 根据 -servlet.xml 中的配置对请求的 URL 进行解析,得到请求资源标识符(URI)。

    53310

    49个Spring经典面试题总结,附带答案,赶紧收藏

    Spring 面向切面编程(AOP) - 提供面向切面编程的功能。 Bean 配置文件 - 包含类的信息以及如何配置它们。 用户程序 - 它使用接口。 1.8. 使用 Spring 有哪些方式?...通常,依赖注入可以通过三种方式完成,即: 构造函数注入 setter 注入 接口注入 在 Spring Framework 中,仅使用构造函数和 setter 注入。 2.4....@RequestMapping - 用于在控制器处理程序方法中配置 URI 映射。...MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。 7.2....DispatcherServlet 根据 -servlet.xml 中的配置对请求的 URL 进行解析,得到请求资源标识符(URI)。

    52840

    标记扩展(Markup Extension)

    XAMl定义的标记扩展 特定于 WPF 的标记扩展。 XAML定义的标记扩展 XAML定义的标记扩展在System.Xaml程序集中,位于XAML命名空间内,并非WPF特定的实现。...主要有以下几种: x:Static 用于引用以符合公共语言规范 (CLS) 的方式定义的任何静态按值代码实体。 可使用引用的静态属性在 XAML 中提供属性的值。...动态资源引用强制在每次访问此类资源时都进行新查找。该标记扩展引用的资源则对声明的位置没有太多要求,因为它在运行的时候采取查找资源。...ColorConvertedBitmap 提供方法来指定没有嵌入配置文件的位图源。 颜色上下文/配置文件由 URI 指定,与图像源 URI 一样。.... /> ComponentResourceKey 定义和引用从外部程序集加载的资源的键。 这使资源查找能够在程序集中指定目标类型,而不是在程序集中或类上指定显式资源字典。

    42130

    大规模数据集成: Linked Data

    因此,要表明一本(学术)图书是由一位特定的研究人员为一个已知主题编写的,不仅涉及到这 3 个不同的标识符,还涉及到 3 种不同的模式!拥有一种标准模式来引用所有这些事物,显然非常有意义。...RDF 图表中的截点和链接标识符都属于此情况。 第二,即使任何 URI 感知系统可在外部数据集中使用一个 URI 标识符的引用,该系统的用户也可能不认识该标识符。...” 因为第一条原则不需要使用标准标识符(仅标准标识符模式),所以同一个事物在不同的数据集中肯定具有多个名称。此问题可通过许多方式解决,但我不会花时间深入介绍。...这些 URI 都是资源引用,每个资源使用从 Wikipedia 提取的 RDF 来描述。您单击时看到的是 RDF 数据的 HTML 渲染结果,而不是该资源的网页。...仅更改类名会导致结果现在反映了与欧洲大陆各国的首都关联的外部网页! 如果我更改我所查找的与按这种方式分类的资源相链接的关系,我可以询问另一个完全不同的问题。

    4.5K91

    Nebula3学习笔记(5): IO系统

    这保证了所有的Nebula3的文本输出都通过一个集中的进出通道. 特定的控制台处理器可以用特定的方式处理文本输出(例如输出到stdout, 游戏控制台, 日志文件或网络连接)....Nebula3会自动创建一个本地目录来避免不同程序覆写掉它们的数据. 所以说一般情况下把数据写入用户目录是安全的. 这个地方可以用于保存游戏数据和配置, 或者程序需要调用的持久性数据....这个目录应该也当成是只读的来对待. 其它重定向符可以在程序运行时进行定义. 通常情况下会定义一些抽象资源路径, 如textuers, sound, data等等....URI(统一资源定位符) 在Nebula3中的资源位置通常都是用URI定义的. URI一般包括下面这几部, 有一些是可选的: 模式(协议?), 如"http:", "file:", 等......Stream对象用一个IO::URI对象来定义它们的资源位置. 通常情况下, 一个URI格式映射到一个特定的流对象.

    69440

    Nginx中location、rewrite使用方法

    一、location用法总结 location可以把不同方式的请求,定位到不同的处理方式上. 1.location的用法 location ~* /js/.*/\.js 以 = 开头,表示精确匹配;如只匹配根目录结尾的请求...主要区别在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器。... : 匹配单个字符c [a-z] : 匹配a-z小写字母的任意一个 小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。...$server_port : 请求到达服务器的端口号。 $request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。...$uri : 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。 $document_uri : 与$uri相同。

    1.1K20
    领券