- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第五章资源、风格及模版
本章目标
?了解WPF中的资源、风格和模板
?熟练使用WPF资源和WPF控件模板
?掌握模板的工作原理
本章重点
?WPF风格的各种用法和作用域
?WPF控件模板和风格
知识点讲解
1.1.WPF资源
1.1.1.概念
资源的定义和类型
资者,货也。资源即货之来源。在我们程序当中的图片、音频、文档、甚至我们定义的一个常量都属于资源。资源根据出现的方式可以分为三类:一类是嵌入在程序集中的嵌入资源;一类是以单独文件的形式存储在本地的存储介质上的独立资源;还有一类是以单独文件的形式存储在异地的存储介质上的异地资源。
在WPF中,我们也可以根据资源的层次分为程序集资源和XAML资源。这种分类主要是把XAML资源和其他资源区分开。
资源的管理
我们对资源的分类有了一定了解,在开发中,我们还可以将资源分为在VisualStudio项目管理中管理的资源和不在项目管理中管理的资源。在项目中管理的资源最终还可以被编译到程序集中,也可以不编译到程序集中而以独立文件的形式存在。不在项目管理中管理的资源也是以单独文件的形式存在,这类资源由程序员自己管理。
VisualStudio是怎么管理资源的呢?在VisualStudio中,我们常常用到了一个名为解决方案资源管理器的视图。
打开解决方案资源管理器视图
解决方案资源管理器
我们打开项目所在文件夹会发现上图中除了引用项以外其他的文件都在文件夹里存在。另外还多了一个以项目名称命名的文件“WPFResource”以及一个bin目录和一个obj目录。
项目所在文件夹
当我们向解决方案资源管理器中拖入一张图片文件或其他文件后会发现,刚操作的文件出现在项目所在文件夹中相应位置中。这实际上就是VisualStudio项目管理在管理我们的资源。
如果我们将项目中的MainWindow从项目中移除,我们会发现解决方案管理器中看不到MainWindow.xaml和MainWindow.xaml.cs文件了,而在项目所在文件夹中还存在这俩文件,这是为什么呢?而且刚才看到的引用项的那些记录保存在哪呢?项目所在文件夹中的bin目录和obj目录又是干什么的呢?
我们看一下刚才提到的WPFResource文件,用记事本打开它。
?xmlversion=1.0encoding=utf-8?
ProjectToolsVersion=4.0DefaultTargets=Buildxmlns=
PropertyGroup
ConfigurationCondition=$(Configuration)==Debug/Configuration
PlatformCondition=$(Platform)==x86/Platform
ProductVersion8.0.30703/ProductVersion
SchemaVersion2.0/SchemaVersion
ProjectGuid{BF88F8F6-3E23-4702-AD17-44}/ProjectGuid
OutputTypeWinExe/OutputType
AppDesignerFolderProperties/AppDesignerFolder
RootNamespaceWPFResource/RootNamespace
AssemblyNameWPFResource/AssemblyName
TargetFrameworkVersionv4.0/TargetFrameworkVersion
TargetFrameworkProfileClient/TargetFrameworkProfile
FileAlignment512/FileAlignment
ProjectTypeGuids{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}/ProjectTypeGuids
WarningLevel4/WarningLevel
Utf8Outputtrue/Utf8Output
ExpressionBlendVersion4.0.20621.0/ExpressionBlendVersion
/PropertyGroup
PropertyGroupCondition=$(Configuration)|$(Platform)==Debug|x86
PlatformTargetx86/PlatformTarget
DebugSymbolstrue/DebugSymbols
DebugTypefull/DebugType
Optimizefalse/Optimize
Out
文档评论(0)