自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 获取ItemsControl里面的控件

ItemsControl通过Binding获得数据,每个数据的模板在DataTemplate里面,直接查找DateTemplate里的控件获取不到。可以在ItemsControl的ItemContainerGenerator.StatusChanged时间里通过下列方法获得。this.itemsControl.ItemContainerGenerator.StatusChanged += ItemC

2016-06-28 19:03:51 4605 1

原创 Calendar控件改变日期后,使其自动失去焦点

Canlendar在改变日期是,在想点击其他地方需要点击两次,第一次相当于先失去焦点,第二次才可选中其他控件。这样非常不方便,我们可以在calendar_SelectedDatesChanged中,添加如下代码,使其自动失去焦点,可直接选中其他控件。if (sender != null){ UIElement el = (UIElement)sender; el.ReleaseSt

2016-06-28 18:46:17 1610 1

转载 介绍WPF中DependencyProperty的一些基本用法

转自:http://blog.sina.com.cn/s/blog_6130c4c40100e7ud.html 这一篇Post中,我准备先介绍WPF中DependencyProperty的一些基本用法。在程序中使用DependencyProperty好的,我相信你已经决定了要使用DependencyProperty而不是传统的CLR属性,正如上一篇Post所说,很多地方都需要使用到Dependen

2016-03-09 11:28:05 5609

原创 WPF绘图

WPF的基本图形包括以下几个:Line:直线段,可以设置触笔(Stroke) Rectangle:矩形,既有触笔,又有填充(Fill) Ellicps:椭圆,长宽相等即为正圆,既有触笔又有填充 Polygon:多边形,由多条直线段围成的闭合区域,既有触笔又有填充。 Polyline:折线(不闭合),由多边收尾相接的直线段组成。 Path:路径(闭合区域),由若干直线、圆弧、贝塞尔曲线组成。

2015-11-02 19:02:12 2154

原创 Style

Style中的SetterSetter,设置器。Setter类的Property属性用来指名目标的属性, Value为其提供属性值,如果想设置控件的ControlTemplate,只需要把Setter的Property设为Template并为Value提供一个ControlTemplate对象即可。

2015-10-30 18:01:40 602

原创 获得由ControlTemplate或DataTemplate生成的控件的内部控件

由ControlTemplate或DataTemplate生成的控件都是“由Template生成的控件”。ControlTemplate和DataTemplate两个类均派生子FrameworkTemplate类,这个类有个名为FindName的方法供我们检索其内部控件。

2015-10-28 09:14:10 924

原创 DataTemplate与ControlTemplate的关系与应用

决定控件外观的是ControlTemplate,决定数据外观的是DataTemplate。 把ControlTemplate应用在所有目标上需要借助Style来实现,Style不能标记x:Key,

2015-10-27 20:02:04 453

原创 ControlTemplate

ControlTemplate主要有两大用武之地: 1. 通过更换ControlTemplate改变控件外观,使之具有更优的用户体验及外观。 2. 借助ControlTemplate,程序员与设计师可以并行工作,程序员可以先用WPF标准控件进行编程,等设计师的工作完成后,只需把新的ControlTemplate应用到程序中就可以了。

2015-10-26 20:13:30 492

原创 WPF DataTemplate

WPF中引入模板(Template)将数据和算法的“内容”与“形式”解耦。WPF:中Template分为两大类:ControlTemplate和DataTemplate。 下面详细介绍DataTemplate: DataTemplate是数据内容的表现形式,一条数据显示成什么样子,是简单的文本还是直观的图形动画就由他来决定。

2015-10-26 17:18:12 961 1

原创 WPF资源

WPF程序中数据就分为四个等级存储:数据库里的数据,资源文件里的数据,WPF对象里的数据,变量中的数据。一、WPF对象级资源的定义与查找

2015-10-23 16:33:05 548

原创 自定义Command

第一层比较浅直接声明定义自己的RoutedCommand实例。这样很难算真正意义的“自定义命令”。 第二层指从实现ICommand接口开始,定义自己的命令并且把某些业务逻辑也包含在命令之中。下面看一个自定义清楚命令: 为了简化使用CommandBinding来处理业务逻辑的程序结构,可能会希望把业务逻辑移入命令的Execute方法内,这样命令直接在命令目标上起作用,而不像RoutedComman

2015-10-23 10:33:44 773

原创 命令参数

命令库里有很多WPF预制命令,如New、Open、Copy、Cut、Paste等。这些命令都是ApplicationCommands类的静态属性,所以实例永远只有一个,那么这时候就需要用CommandPrameter属性。

2015-10-22 16:43:58 596

原创 WPF系统中的命令系统

事件不具有约束力,命令与事件的区别就在于命令具有约束力。 命令的使用大概分为以下几步: (1)、创建命令类:即获得一个实现ICommand接口的类,如果命令与具体业务逻辑无关则使用WPF类库中的RoutedCommand类即可。如果与业务逻辑相关的专有命令,则需要创建RoutedCommand(或者ICommand接口)的派生类。 (2)、声明命令实例:使用命令时需要创建命令类的实例。使用技巧

2015-10-22 15:10:54 1300

原创 RoutedEventArgs的Source与OriginalSource

路由事件是沿着VisualTree传递。VisualTree与LogicalTree区别在于:LogicalTree的叶子是构成用户界面的控件,而VisualTree要连接控件中的细微结构也算上。“路由事件在VisualTree上传递”本意上是说“路由事件的消息在VisualTree上传递”,而路由事件的消息包含在RoutedEventArgs实例中。

2015-10-22 10:40:17 2465

原创 自定义路由事件

创建自定义路由事件大体分为三个步骤: (1)、声明并注册路由事件。 (2)、为路由事件添加CLR事件包装。 (3)、创建可以激发路由事件的方法。下面用一个例子来展示这个过程:

2015-10-21 20:39:34 1181

转载 ObservableCollection和List与INotifyPropertyChanged的使用

ObservableCollection和List的使用场合,分以下四种情况:1.最简单的是只用List,T不实现INotifyPropertyChanged接口,适用于一次性绑定,适用于重新实例化整个List集合的绑定。2.List,并且T实现INotifyPropertyChanged接口,因为INotifyPropertyChanged接口只是监测T,而没有监视List集合。所以修改

2015-10-21 16:46:06 2526

原创 Grid布局

特点:1)可以定义任意数量的行和列2)行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式,可设置最大值和最小值3)内部元素可以设置自己所在的行、列,还可以设置跨越几行、几列4)可以设置内部元素的对齐方向Grid类具有ColumnDefinitions和RowDefinitions两个属性,它们分别是ColumnDefinition和RowDefinition的集合,表示Grid定义了多少列、

2015-10-21 16:15:05 553

转载 StackPanel布局

StackPanel可以把内部元素在纵向或横向上紧凑排列,形成栈式布局。

2015-10-19 15:39:07 566

原创 属性(Property)

字段或方法是否使用static修饰: “对类有意义”的字段或方法用static修饰; “对实例有意义”的地段或方法不使用static修饰。静态字段在内存中只有一个拷贝,非静态字段每个实例拥有一个拷贝; 无论方法时候为静态的,内存中只会有一份拷贝,区别在于静态方法通过类名来访问,还是通过实例名来访问。.NET Framework 的退出,微软把Get/Set这对方法合并成属性(Property)

2015-10-19 10:49:18 394

原创 多路Binding(MultiBinding)

UI需要显示的信息由不止一个数据来源决定时,就使用MultiBinding,即多路Binding。 Bindings属性其类型是Collection,通过这个属性MultiBinding把一组Binding对象聚合起来。 处在这个集合中的Binding对象可以拥有自己的数据校验与转换机制。

2015-10-16 16:50:36 915

原创 Binding的数据转换(Data Converter)

当Source端Path所关联的数据与Target端目标属性数据类型不一致时,添加数据转换器(Data Converter),简单的数据转换(如double转string)WPF类库会自动转换。手动转换时需要手动写Converter,创建一个类,并实现IValueConverter接口。

2015-10-16 14:19:25 1110

原创 Binding数据校验

Binding的ValidationRules属性类型是Collection<ValidationRule>,可以为每个Binding这只多个数据校验条件,每个条件是一个ValidationRule类型对象。ValidationRule类是抽象类,使用时创建派生类并实现Validate方法,该方法返回值是ValidationResult类型对象,通过校验ValidationResult对象的IsV

2015-10-15 17:41:19 730

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除