首页 > 其他分享 >Silverlight资源文件

Silverlight资源文件

时间:2023-07-02 11:08:49浏览次数:40  
标签:文件 Silverlight XAML 程序包 URI 应用程序 资源


 

资源文件通常是您的应用程序使用的任意非可执行的数据文件,如图像、音频和视频文件。资源文件在某些上下文中还可能具有特定的含义。例如,在应用程序本地化的上下文中,资源文件指代 .resx 文件,您可以在本地化的附属程序集中部署这些文件。

使用 Silverlight,您可以通过以下方式部署资源文件:

  • 作为应用程序包中的单个文件。
  • 作为按需检索的单个文件。
  • 作为嵌入应用程序包的程序集中的文件。
  • 作为嵌入外部库包的程序集中的文件。
  • 作为程序集中嵌入的按需检索的文件。

一般通过统一资源标识符 (URI) 在代码或 XAML 中引用资源文件。所需的 URI 格式取决于部署文件的方式。您还可以选择指定相对或绝对 URI。

本主题介绍如何配置资源文件的部署位置并通过 URI 来引用资源文件。有关应用程序打包以及如何组织应用程序的结构以获得最佳响应效果的信息,请参见应用程序结构。有关部署和本地化的信息,请参见部署和本地化

  配置资源文件

在 Visual Studio 中,可以将资源文件添加到 Silverlight 项目并通过设置其"生成操作"值来为部署配置这些资源文件。可以为 Silverlight 项目中的资源文件使用以下生成操作:

  • 资源:此生成操作会将文件嵌入项目程序集。您可以将此选项用于应用程序和库项目,并且在应用程序包的内部或外部部署这些程序集。
  • 内容:此生成操作会将文件包含到应用程序包中,而不嵌入项目程序集。将此选项用于包中多个程序集共享的资源文件。
  • 无:此生成操作不会将文件包含到应用程序包或程序集中。将此选项用于要按需检索的资源文件。通常在与应用程序包所在服务器位置相同的地方部署按需文件。

警告:

Visual Studio 中的"属性"窗口提供了"生成操作"下拉列表中的几个其他值。但是,您只能将前面三个值用于 Silverlight 项目。特别要注意的是,Silverlight 嵌入资源必须始终使用"资源"生成操作,而非"嵌入的资源"生成操作,后者使用 Silverlight 无法识别的格式。

如果决定共享嵌入的资源文件或按需检索它,可以更改生成操作。在这种情况下,必须重新生成和重新部署您的应用程序。如果没有使用相对 URI,还必须在重新生成前更新您的 URI 引用。以下各节对 URI 格式选项进行了说明。

说明:

通过 URI 引用字体文件时,必须在程序集中嵌入该字体文件并将 URI 语法用于嵌入的文件。有关更多信息,请参见 FontFamily 类概述。作为替代方案,可以设置各种控件都具有的 FontSource 属性。有关更多信息,请参见文本和字体

使用通过 .NET Framework 版本 1.1 编译的资源文件将导致 NotSupportedException(如果这些文件包含 BooleanCharByteStream 类型)。

  绝对和相对 URI

Silverlight 支持绝对和相对 URI,并通过使用相对 URI 提供用于查找文件的回退机制。

绝对 URI 指定资源文件的确切位置,绕过回退机制。例如,"http://www.contoso.com/resources/OnDemand.png"表示指定域中资源文件夹中的一个文件。如果资源文件所在的域不是应用程序包的宿主域,必须指定绝对 URI。

相对 URI 指定相对于应用程序根或引用 XAML 的资源文件位置。

  相对于应用程序根的 URI

具有前导斜杠的相对 URI 表示相对于应用程序根的位置,例如"/resources/image.png"。

应用程序根是应用程序包的根文件夹或服务器上应用程序包的位置。相对 URI 回退机制首先搜索应用程序包,然后搜索服务器。如果在前导斜杠后包括路径,则在这两个位置中搜索相同的文件夹层次结构。

  相对于引用 XAML 的 URI

不具有前导斜杠的相对 URI 表示相对于引用 XAML 的位置。如果您在代码中使用相对 URI,则引用 XAML 是您的代码操作的 XAML。

如果引用 XAML 位于文件夹中,可以引用相对于该位置的其他文件夹中的文件。但是,不能在应用程序根上进行搜索,例如"../resources/image.png"。此 URI 搜索包含 XAML 的文件夹所在级别上的资源文件夹,假定该文件夹不是应用程序根。

如果从应用程序包加载引用 XAML 但是未找到引用的资源文件,则使用默认回退机制。应用程序包中引用 XAML 的路径用于在服务器上搜索。例如,考虑应用程序包中以下位置的 XAML 文件:/pages/xaml/MyPage.xaml。在这种情况下,回退机制将在服务器上的以下位置搜索"../resources/image.png":/pages/resources/image.png。

如果将引用 XAML 编译为程序集,则必须在该同一程序集中嵌入资源文件。在这种情况下,URI 回退机制由 ResourceManager 类提供。此回退机制使用语言和区域性设置来查找附属程序集中的资源文件。有关更多信息,请参见本地化基于 Silverlight 的应用程序

  指向其他程序集的 URI

还可以引用嵌入某程序集的资源文件,该程序集不是包含引用 XAML 的程序集。在这种情况下,URI 使用以下格式:"/assemblyShortName;component/resourceLocation,例如"/SilverlightLibraryAssembly;component/image.png"。请注意,需要使用前导斜杠和 component 关键字(后跟一个斜杠)。

对于其他嵌入的资源,此 URI 格式使用 ResourceManager 类提供的回退机制。


标签:文件,Silverlight,XAML,程序包,URI,应用程序,资源
From: https://blog.51cto.com/u_3319687/6603651

相关文章

  • Silverlight应用程序扩展服务
     使用应用程序扩展服务可以扩展Silverlight应用程序模型。通常使用扩展服务来封装特定功能域中由多个应用程序使用的功能。例如,可以使用扩展服务来实现专用媒体处理或自定义数据访问层。Application类提供多数应用程序共用的服务。有关更多信息,请参见应用程序服务。可以通过创......
  • Silverlight资源字典
     资源字典是一个受ResourceDictionary类支持的概念。资源字典是一个键控对象字典,可在XAML和代码中使用。XAML是最常见的用法,特别是用于最初定义资源字典中的对象。资源字典可存在于应用程序结构中的多个位置,包括作为直接(页)资源、应用程序资源(作为Application对象的一部分)或......
  • Silverlight如何使用应用程序库缓存
     应用程序库缓存可在用户重新访问网站时帮助改善启动性能。当您使用应用程序库缓存时,Silverlight将某些程序集打包成应用程序包外部的外部部件(.xap文件)。应用程序包中的清单指定启动时所需的程序集,并指示它们是在应用程序包的内部还是外部。当用户首次访问您的网页时,Silverlight......
  • Silverlight 3 中的新增功能
    本主题包括下列各节。三维效果(透视转换)位图效果和像素着色器WriteableBitmap位图缓存支持新媒体(原始视频/音频和H.264)在运行时更改样式BasedOn样式动画缓动函数标志符号中的FontSource支持脱离浏览器支持基于Silverlight的本地应用程序之间的通信应用程序库缓存应用程序扩展......
  • Silverlight路线图
     本主题介绍用于开发基于Silverlight的应用程序的主要功能。其中包含使用代码示例创建基于Silverlight的应用程序的常规步骤,以帮助您初步了解如何编写代码。本主题包括下列各节。先决条件将Silverlight集成到应用程序中XAML布局控件添加代码逻辑动态语言图形媒体和动画数据......
  • Silverlight应用程序服务
     当使用Silverlight的托管API创建应用程序时,必须创建一个从Application派生的类。Application类提供应用程序通常要求的若干服务。它主要表示应用程序代码在Silverlight插件生命周期中的入口点。Silverlight插件生命周期自用户导航到承载Silverlight插件的网页时开始......
  • 如何创建新Silverlight项目
     Silverlight项目文件是您可以使用不同工具来创建和编辑的文本文件。例如,可以使用VisualStudio2008和ExpressionBlend来创建Silverlight项目或修改现有项目。有关更多信息,请参见ExpressionBlend文档。本主题介绍如何使用VisualStudio2008来创建和生成新的Silver......
  • [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
    一、文章概述本演示介绍了WPF的静态资源和动态资源的基本使用,并对两者做了简单的比较。静态资源(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再访问这个资源了;动态资源(DynamicResource)使用指的是在程序运行过程中然会去访问资源。相关下载(代码、屏幕录像):h......
  • jar文件打包成exe以及生成安装程序
    仅以此文献给还在为打包jar文件而徘徊挣扎的朋友...所需工具下载地址如下:launch4j(jar-->exe)Setup.zip(exe-->安装程序) jar-->exe-->安装程序详细步骤如下: 1.解压下载好的launch4j,并打开其中的launch4j.jar或者launch4j.exe。  2.打开之后launch4j后,如下图:step1:选择你的jar文......
  • C++ 核心指南之资源管理(下)—— 智能指针最佳实践
    C++核心指南(C++CoreGuidelines)是由BjarneStroustrup、HerbSutter等顶尖C+专家创建的一份C++指南、规则及最佳实践。旨在帮助大家正确、高效地使用“现代C++”。这份指南侧重于接口、资源管理、内存管理、并发等High-level主题。遵循这些规则可以最大程度地保证静......