随笔分类 - WPF
关于WPF技术
摘要:在xaml中,对于Style、DataTemplate、ControlTemplate、StoryBord等资源,可以放在UserControl.Resource、Windows.Resource、Control.Resource、DataTemplate.Resource、ControlTemplate.Resource、StoryBord.Resource、Style.Resource、ResourceDictionary中定义。在定义Style时,若仅指定TargetType,而不指定x:Key,则“该样式”会应用到 有效范围内的全部TargetType类型的控件(包括兼容的)。资源字典
阅读全文
摘要:首先介绍一种简单地方法:就是通过自定义SystemColors类的参数来自定义WPF ListBox选择颜色的,SystemColors的HighlightBrushKey和HighlightTextBrushKey分别代表ListBoxItem被选中时文字和背景颜色,没有Highlight的BrushKey代表ListBox没有焦点时的选中项文字和背景颜色,如下示例代码: AAA B ccc这样的话,ListBox选中颜色变成了这样:可是这种方法仅仅能改变统一的颜色,无法完成其他更多要求。那么另一种更强大的方法就是在模板中定义。一种方法就是在控件模板中根据ListBoxItem的Is...
阅读全文
摘要:http://www.cnblogs.com/mgen
阅读全文
摘要:一个内容控件分解它的“结构树”,肯定能够看到ContentPresenter“元素”,该元素的功能:用来为“内容控件”显示“Content”
阅读全文
摘要:1:wpf中,所有的内容控件都继承自“ContentControl”,所以我们可以直接应用“ContentControl”自定义我们“需要的”内容控件。2:ContentControl具有Content属性,其派生的子控件可继承拥有它。ContentControl的“组成树”包括ContentPresenter元素,该元素具有“Content”属性,实际上是由ContentPresenter负责将ContentControl的Content属性显示出来,进一步,就是把“wpf内容控件”的Content属性显示出来。在ContentControl的“组成树”内部:ContentPresenter
阅读全文
摘要:ItemsControl是集合类控件的基类,如:ListBox、ComboBox、TreeView所以,我们可以直接应用“ItemsControl”自定义我们“需要的”集合类型控件
阅读全文
摘要:ItemsControl:ListBox,ComboBox,TreeViewItemContainerStyle是用来设置每一个集合控件的Item的样式的属性(即设置每一个项的样式)。 使用ItemContainerStyle 需要注意,如果集合控件的每一项是通过绑定生成的,则ItemContainerStyle对每一项Item都起作用,如果集合控件的项是通过直接在XAML中添加的,则ItemContainerStyle只对集合控件的第一层Item起作用。 这个效果容易在TreeView等有层次结构的集合控件中引起误解。例:
阅读全文
摘要:ImageBrush:利用图像绘制区域ImageBrush 是一种将自身内容定义为图像的 TileBrush,图像通过它的 ImageSource 属性指定。 您可以控制图像的拉伸、对齐和平铺方式,因此可以生成图案和其他效果。 下面的图像演示使用 ImageBrush 可以实现的一些效果。ImageBrush 可以绘制形状、控件、文本等如上所述,ImageBrush 可利用 ImageSource 绘制区域。 与 ImageBrush 一起使用的 ImageSource 的最常见类型是 BitmapImage,它描述一个位图图形。 使用 Drawing 对象时,您可以使用 DrawingIma
阅读全文
摘要:通俗理解Stretch的Uniform和UniformToFill: Uniform,控件的高度和宽度会增加直到达到了容器的大小,也就是说控件的大小和容器的大小是有关系的,同时如果给控件设置了明确的高度和宽度,则他们的最大值是有一个界限的.例如设置一个Rectangle的height为10,为width为100,那么将会得到10*10的图形. UniformToFill,控件的高度和宽度会对称的设置直到填充整个容器.例如设置一个Rectangle在一个100*200的容器中,那么则会得到一个200×200的控件大小,其他的部分则会被截取掉.如果设置了明确的高度和宽度,例如设置Rect
阅读全文
摘要:VisualBrush是一种比较特殊的笔刷,它的功能仍然是用来给元素填充图案,但它的内容却可以是各种控件(换言之:它可以使用各种控件来给元素填充图案)。你可以将它理解为一个普通的容器,但在它内部的所有控件都会失去了交互能力,而只保留显示能力。
阅读全文
摘要:1:ListCollectionView : CollectionView : INotifyCollectionChanged, INotifyPropertyChanged2:ObservableCollection: INotifyCollectionChanged, INotifyPropertyChanged由于“1”和“2”都实现了“INotifyCollectionChanged, INotifyPropertyChanged”接口,所以在添加项、移除项或刷新整个集合时,都具有“自动通知”目标的功能。其中“ListCollectionView”集合的变化主要受“构造参数”——IL
阅读全文
摘要:DataTemplate 的 "DataType" 通常就是 “ViewModel” ——视图模型(亦可不恰当称之为:数据模型)
阅读全文
摘要:在ListBox中承载大量的数据项时,可采用虚拟可视化技术来提高控件显示数据的性能。如下代码:
阅读全文
摘要:1:善于用“Margin”做动画效果2:色彩处理通常用:Brush,而Brush(如:SolidColorBrush)的实例化,通常需要载入“ System.Windows.Media.Color”(如:System.Windows.Media.Colors.Blue)
阅读全文
摘要:Binding.RelativeSource 属性说明:通过指定绑定源相对于绑定目标的位置,获取或设置绑定源。此属性通常用于将对象的某个属性绑定到该对象的另一个属性,或用于在样式或模板中定义绑定。默认情况下,如果已设置了DataContext属性,则绑定会继承该属性所指定的数据上下文。但是,RelativeSource属性是一种可以显式设置Binding的源和重写继承的数据上下文的方式。有关更多信息,请参见如何:指定绑定源。此外,使用Binding.ElementName和Binding.Source属性还可以显式设置绑定源。但是,对于每个绑定,只能设置ElementName、Source和R
阅读全文
摘要:在WPF中,有着两种资源:(1)第一种是:组件资源,又被称为程序集资源,以二进制存在编译后的程序集中,通常用于存放图片或其他音频文件。不恰当的说,就是WPF控件所需要的一些“图片”、“颜色”等资源。例如,Image控件:(2)第二种是:对象资源,通常放于xaml中。比如WPF的样式(Style)、控件模板(ControlTemplate)、数据模板(DataTemplate),甚至可以是“普通”实例(例如:BitmapImage 或 自定义类) 对于“普通”实例的情况,特举例如下: 元素==实例 (1):BitmapImage类 (2)alarm命名空间下的3个自定义类
阅读全文
摘要:在WPF中。有着两种资源, 一种是组件资源:又被称为程序集资源,以二进制存在编译后的程序集中,通常用于存放图片或其他音频文件. 第二种是对象资源:通常放于xaml中。比如WPF的样式和数据绑定特性. demo地址 http://download.csdn.net/source/3449754 组件资源:和以前 在WPF中。有着两种资源, 一种是组件资源:又被称为程序集资源,以二进制存在编译后的程序集中,通常用于存放图片或其他音频文件. 第二种是对象资源:通常放于xaml中。比如WPF的样式和数据绑定特性. demo地址 http://download.csdn.net/source...
阅读全文
摘要:第一种写法:(1):定义样式2:引用样式第二种写法: 说明如下:Source的属性值应该为“ImageSource 或 ImageSource的派生子类的实例”即Value = 应该为“ImageSource 或 ImageSource的派生子类的实例”Value="{StaticResource ResourceKey=RedLamp_Active}":把由“RedLamp_Active”关键字所代表的“BitmapImage”实例赋值给ValueSetter:设置器Property:用来指定“某一个”属性Value:用来设置“某个”属性的值{StaticResource
阅读全文
摘要:下面这种形式是比较常见的“一种”,当然还有其它的形式: public event Action NewAlarmDataArrivingEvent; //声明事件 //定义一个方法,在该方法中封装了引发事件的代码,该方法的参数通常为事件的处理方法的参数。在需要引发事件的地方,调用该方法即可 private void RaiseArrivingEvent(AlarmData newAlarm) { if (newAlarm != null && !bisInitializing && NewAlarmDataArrivingEvent != null) //引发事
阅读全文
摘要:1:在WPF中,界面上的动作,效果(甚至包括隐藏,显示等动作)。在界面展示的效果,实际上,在后台使用C#数据(即属性)来支撑这些效果(比如:在前台的触发器中,通过绑定后台“属性”来控制“触发器”是否被触发;当触发时,展现一种效果,当不被触发时,界面效果还原),这样通过使用MVVM框架模式来处理是最好的。2:在处理WPF控件的界面数据显示效果时(添、删、改、查,清除等显示效果),通常不使用WPF控件的属性或方法来处理,而是通过与wpf控件绑定的数据源来处理,通过改变数据源(可能为单一对象或集合),来达到控制WPF控件的界面显示效果(因为控件与数据源是绑定的)。
阅读全文