理解Generic.xaml和Themes】的更多相关文章

"Generic.xaml"这个名称并非偶然 通过上面的叙述,你可能会有冲动将Generic.xaml中的Style代码剪切出来,粘贴到任何一个我们的控件可以找到的地方,然后把Generic.xaml删掉或改成更优雅的名称,如果你运气好的话,这是可行的,因为控件会自下而上(Page,App,Theme)去查找其所需要的Style,但此时你已经犯了一个潜在的错误:你没有为控件提供默认的样式.这里的默认样式其实是说"在默认主题中或没有为 该控件找到当前操作系统对应的主题时采用的的…
把Resource嵌入到Generic.xaml文件中,并把该文件放到应用程序的Themes主题文件夹下面,这们Generic.xaml文件中的资源就可以被系统识别为默认主题一部分,从而进行使用. 为快速地为你的应用定制一个零部件,你需要的是UserControl, 为了让你打造的控件更标准化,更灵活以及更具有普遍意义,你需要用到的CustomControl,这正是本文要介绍的. 1,新建CustomControl 在选择控件基类后,第一件事情便是在你的项目中新建"CustomControl&q…
4.0里面不支持Generic.xaml里面 <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/test;component/Themes/Generic/ListBox.xaml" /> <ResourceDictionary Source="/test;component/Themes/Generic/Border.xaml" /> <…
如果需要用到Themes/Generic.xaml作为默认风格资源文件,不要忘了该项目的AssemblyInfo.cs中必须要有以下这段: [assembly: ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located //(used if a resource is not found in the page, // or application re…
原文:WPF中的Generic.xaml, theme以及custom control 在Visual Studio中创建自定义控件时,所有控件都将添加到/Themes/Generic.xaml. 最近做的项目用了个漂亮的开源UI库,结果项目临近结尾发现要支持.Net 3.5, 然而那个UI库却最低支持4.0.欲哭无泪,最后决定拿掉那个库,自己改改style得了.深刻的教训. 作为程序员一般都比较害怕搞界面,这下硬着头皮上,折腾折腾Blend,抄抄改改各种style,弄着弄着居然能看懂个大概了.…
All silverlight control style should be designed in generic.xaml which is in theme folder. But when there are a lots of controls, the generic.xaml file will be too big. Generally, we hope one control style, one style file. There is one more further s…
发现我在一个dll工程里面新建一个xaml文件起名成generic.xaml 如果这个xaml里面存在中文则会编译错误,发现这样建立的xaml使用的是gb2312编码 果断文件-另存为-编码另存为 utf-8这样就好了. 问题的原因就在于,文件本身使用的编码和它声明的编码不一致.xml解析器(也就是silverlight的xaml解析器)在对字节流(该字节流之前是使用gb2312进行编码的)进行解码时,用的就是声明的编码(如果没有指定,则默认为utf-8),因此这种不一致的问题会导致解码之后得到…
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 皮肤 皮肤是应用程序中样式与模板的集合,可以被整体动态的替换,从而让应用看上去是一种全新的风格.通过皮肤允许第三方任意改变应用程序的外观,WPF并没有内建一个叫皮肤的机制.皮肤及换肤功能可以通过动态资源机制加Style和模板来实现. 下面介绍一个WPF较常见的皮肤定制机制.如果我们希望一个元素的外观可以通过皮肤来定制,我们要将此元素的样式定义为引用动态…
XAML 定义应用的 UI,并且 XAML 也可以定义 XAML 中的资源.资源通常是对你希望多次使用的某些对象的定义.你要为 XAML 资源定义一个键,以供将来引用,该键的作用类似于资源的名称.你可以在整个应用中或从应用中的任意 XAML 页面引用资源.Windows 运行时 XAML 具有一个 ResourceDictionary 元素,你可以在其中定义你的资源.然后可使用 StaticResource 标记扩展或 ThemeResource 标记扩展来引用你的资源. 你最希望声明为 XAM…
在开发 XAML(WPF/UWP) 应用程序中,有时候,我们需要创建自定义控件 (Custom Control) 来满足实际需求.而在自定义控件中,我们一般会用到一些原生的控件(如 Button.TextBox 等)来辅助以完成自定义控件的功能. 自定义控件并不像用户控件 (User Control) 一样,使用 Code-Behind(UI 与逻辑在一起)技术.相反,它通过把 UI 与逻辑分离而将两者解耦.因此,创建一个自定义控件会产生两个文件,一个是 Generic.xaml,在它里面定义其…
有时需要用三张图片(正常状态,鼠标移上,鼠标按下)来作为一个按钮的样式,虽然这种做法不好,应该用矢量的方式制作样式,但有的时候还是需要这样做的. 每次都修改按钮的样式来实现这个做法,既麻烦又会生成大段的XAML代码,不利于维护,抽出一个自定义图片按钮控件,只需传入三张图片的路径即可使用,显然是更好的做法,下面就演示一下如何编写这个控件,VS2015和Blend2015结合使用. 1. 首先,在VS中新建一个WPF自定义控件库,命名为WpfCustomControlLibrary,系统会自动生成一…
原文:Building a UWP Rating Control using XAML and the Composition API | XAML Brewer, by Diederik Krols Building a UWP Rating Control using XAML and the Composition API 3 Replies In this article we’ll build a XAML and C# Rating Control for the Windows U…
引言 WPF框架中已经提到,WPF框架提供XAML基本服务.WPF中XAML的引入向开发者提供UI设计和代码分离的编程型.XAML是WPF中提出的一个具有重要意义的新技术,基本涉及WPF中所有UI开发.本设计所有UI代码都采用XAML.   XAML综述 XAML(可扩展应用标记语言的简称,可以称为zammel)是一种被用于.net对象实例的标记语言.尽管XAML是一种可以被应用于不同问题领域的技术,但它最初被设计时是作为WPF的一部分,WPF允许Windows开发人员建设富用户界面.你可以用相…
原文:UWP入门(六)-- ResourceDictionary 和 XAML 资源引用 你最希望声明为 XAML 资源的 XAML 元素包括 Style.ControlTemplate.动画组件和 Brush 子类. 我们在此处介绍 如何定义 ResourceDictionary 和键控资源 XAML 资源与你定义为应用或应用包一部分的其他资源有何关系 资源字典高级功能 MergedDictionaries ThemeDictionaries. 1. 定义和使用 XAML 资源 <Page x…
1.什么是XAML? 官方语言: XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言. 人话: XAML是一种界面开发语言,跟英语.中文一样,不过人家是用来开发界面的啦~ 具体长什么样呢?如下图 2.为什么需要XAML? 随着大众审美的提升,对软件界面要求也严格了很多,这就避免不了程序员和设计师的合作. 合作一般是这样开展: 1.需求分析结束后,程序…
前记:WPF中的样式使用一般分为两种Statci和Dynamic.两者的区别可以理解为,前者在运行的时候已经确定了样式的风格,而后者可以根据资源在运行时的修改而修改也可以使用那些在运行时才存在的资源. 背景:有时候我们会将样式的资源和XAML页面代码分离,有时候也希望同一个资源可以在多个Application中使用:另外还有一个更致命的问题,如果我们在很多地方都写了重复的样式,突然有一天我们要修改,那岂不是要一个一个地方进行修改,那工作量实在不敢想象.好在WPF中提供了解决这个问题的好方法,那就…
在WPF中添加样式,在MainWindow.xaml使用自定义按钮FButton时报错,报错信息如下: "System.Windows.Markup.XamlParseException"类型的未经处理的异常在 PresentationFramework.dll 中发生 其他信息: "在"System.Windows.Markup.StaticResourceHolder"上提供值时引发了异常.",行号为"17",行位置为&q…
1.概述 UWP允许开发者通过两种方式创建自定义的控件:UserControl和TemplatedControl(模板化控件).这个主题主要讲述如何创建和理解模板化控件,目标是能理解模板化控件常见的知识点,并且可以创建扩展性良好的模板化控件. 1.1 ControlTemplate UWP的控件有很多属性,使用这些属性可以为控件定制不同的外观,例如将Button的Border变粗,Background改为红色等,但通过这种改造控件,能做到的仍十分有限. 通过为控件赋予新的ControlTempl…
如果只是使用现有的WPF控件的话,是很难满足当前社会多复杂的业务.所以用户自己订制一系列控件也是一种不可避免的情势.WPF在控制方面分为俩种:用户控件和自定义控件.相信看过前面章节的就明白他们俩者之间的差别.理解用户控件并不难--把现有的控件组合在一起形成的控件.而在笔者看来自定义控件才是WPF最吸引人的地方. 关于用户控件的话,往往就是一个xaml文件,也可以是一个DLL文件.但是自定义控件往往都是一个DLL文件.引用这个DLL文件时候,应用会去加载dll文件里面的Theme文件夹下的Gene…
WPF自定义控件创建 本文简单的介绍一下WPF自定义控件的开发. 首先,我们打开VisualStudio创建一个WPF自定义控件库,如下图: 然后,我们可以看到创建的解决方案如下: 在解决方案中,我们看到了一个Themes文件夹和一个CS文件. 其中CS文件,就是我们需要编写的自定义控件,里面的类继承了Control类:而Themes则存放该控件的样式.即,WPF自定义控件,是通过样式给我们的编辑的控件类披上外衣而形成的. 下面,我们来编写一个简单的时间控件. 我们先将CustomControl…
一:首先来看一下UserControl 熟悉XAML的朋友们都知道,当我们创建一个用户控件的时候,VS会自动为我们生成一个XXX.xaml文件和XXX..xaml.cs文件,XAML文件用于进行控件的UI界面设计,对应的CS文件则是进行逻辑代码的编写.我们主要看一下CS文件,打开CS文件,我们会发现我们自己创建的自定义控件继承自UserControl(别忘了对应的XAML中也是以UserControl为根结点),我们可以按下F12键来看一下UserControl: 我们可以明显的看到UserCo…
原文:WPF C#仿ios 安卓 红点消息提示 先把效果贴出来,大家看看. 代码下载地址: http://download.csdn.net/detail/candyvoice/9730751 点击+,按钮上的红点提示会增加1,点击-,按钮上的红点提示会减去1:点击E,显示或者隐藏红点提示. 这里主要利用了自定义装饰件(Adorner). 参考的主要文章是下面这个文章,这里由于我只需要在自己已有的button上添加一个红点提示,所以精简了下面的内容. http://blog.csdn.net/k…
1.概述 UWP允许开发者通过两种方式创建自定义的控件:UserControl和TemplatedControl(模板化控件).这个主题主要讲述如何创建和理解模板化控件,目标是能理解模板化控件常见的知识点,并且可以创建扩展性良好的模板化控件. 1.1 ControlTemplate UWP的控件有很多属性,使用这些属性可以为控件定制不同的外观,例如将Button的Border变粗,Background改为红色等,但通过这种改造控件,能做到的仍十分有限. 通过为控件赋予新的ControlTempl…
原文:[WPF]给TextBox添上Label 引言     在客户端开发中,要说出现频率大的控件,必定有TextBox的身影.然而在TextBox的旁边通常得有个基友Label,形影不离.为此,我们都要写两个控件,布局两次,这样麻烦且有点浪费时间.不如,我们做狠点,将它们两个绑在一起算了. 简单需求     我们需要的控件该是怎样的.首先,它应该有TextBox的所有特性,其次,它的上方或者左边应该有个Label.我们可以通过设置属性,显示Label的内容.大体上就是这样. 构建方式的选取 W…
http://www.cnblogs.com/Zhouyongh/archive/2011/08/01/2123610.html Style 用来在类型的不同实例之间共享属性.资源和事件处理程序,您可以将 Style 看作是将一组属性值应用到多个元素的捷径. 这是MSDN上对Style的描述,翻译的还算中规中矩.Style(样式),简单来说,就是一种对属性值的批处理,类似于Html的CSS,可以快速的设置一系列属性值到UI元素. 示例 一个最简单的Style的例子: 1: <Window> 2…
一, 不一定需要自定义控件在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样式就可以了.是否需要我们来自定义控件,这需要你考虑目前已有控件的真正逻辑功能而不要局限于外观,如果目前的控件都不能直觉地表达你的想法,那么你可以自己来打造一个控件,否则,也许我们仅仅改变一下目前控件的模板等就可以完成任务.很多人在自定义控件上经常犯的错误是:重复撰写已有的逻辑 二,UserContr…
原文:在WPF中自定义控件(1)    在WPF中自定义控件(1):概述                                                   周银辉一, 不一定需要自定义控件在使用WPF以前,动辄使用自定义控件几乎成了惯性思维,比如需要一个带图片的按钮,但在WPF中此类任务却不需要如此大费周章,因为控件可以嵌套使用以及可以为控件外观打造一套新的样式就可以了.是否需要我们来自定义控件,这需要你考虑目前已有控件的真正逻辑功能而不要局限于外观,如果目前的控件都不能直觉地…
Style 用来在类型的不同实例之间共享属性.资源和事件处理程序,您可以将 Style 看作是将一组属性值应用到多个元素的捷径. 这是MSDN上对Style的描述,翻译的还算中规中矩.Style(样式),简单来说,就是一种对属性值的批处理,类似于Html的CSS,可以快速的设置一系列属性值到UI元素. 示例 一个最简单的Style的例子: 1: <Window> 2: <Grid> 3: <Grid.Resources> 4: <Style TargetType=…
UserControl 将多个WPF控件(例如:TextBox,TextBlock,Button)进行组合成一个可复用的控件组: 由XAML和Code Behind代码组成: 不支持样式/模板重写: 继承自UserControl: 例如当需要界面切换时,可以将多个TextBox封装到一起为一个UserControl,然后进行加载.UserControl可以理解为多个控件的组合. CustomControl 自定义控件,扩展自一个已经存在的控件,并添加新的功能/特性: 由C#/VB.NET Cod…
这一篇本来想先写风格主题,主题切换.自定义配套的样式.但是最近加班.搬家.新租的房子打扫卫生,我家宝宝6月中旬要出生协调各种的事情,导致了最近精神状态不是很好,又没有看到我比较喜欢的主题风格去模仿的,又不想降低教程的质量,所以就打算把风格的主题这一篇,放后面等我找到了我喜欢的主题,然后在开始仿写.这一篇先入门自定义控件. ​ WPF支持样式.内容控件和模板.因此不在刻意的强调自定义控件.这些特性为开发人员提供了多种方式来完善和扩展标准的控件,而不用派生新的控件类.通过以下几种方式能实现大部分需求…