`
WPComming
  • 浏览: 57531 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0; Maximum——最大值,默认为100. Value——当前值。 关键是它的控件模板,因为系统的默认主题不好看,很多时候我们是需要自定义样式和模板。 老方法,先看定义: [TemplatePartAttribute(Name = "PART_Track", Type = typeof(FrameworkElement))] [TemplatePartAttribute(Name = "PART_Indicator", ...
ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0; Maximum——最大值,默认为100. Value——当前值。 关键是它的控件模板,因为系统的默认主题不好看,很多时候我们是需要自定义样式和模板。 老方法,先看定义: [TemplatePartAttribute(Name = "PART_Track", Type = typeof(FrameworkElement))] [TemplatePartAttribute(Name = "PART_Indicator", ...
这个控件,真不好介绍,MSDN上也是草草几句,反正就是可以让用户拖动的玩意儿,但是,你会发现,当你在该控件上拖动时,它没有反响,也就是说这个东西默认不做任何操作的,它是赖在那里什么都不干,除非你去踢上脚。 而且,这个控件就像一个四方鸭,你踢一脚它就前进一步,你不踢,它又在那里尸位素餐,什么都不干了。 还是用一个例子来说明吧,不过,还是先说一下重要的东西。 Thumb有几个核心事件,都是与拖动有关。 往深一层想,它是什么?对,就是我们常见的滚动条里面的滑块,就是我们在网格里面可以拖动的分隔线,就是窗口右下角用于通过拖动来改变窗口大小的小东西。 Thumb的核心事件有: ...
这个控件,真不好介绍,MSDN上也是草草几句,反正就是可以让用户拖动的玩意儿,但是,你会发现,当你在该控件上拖动时,它没有反响,也就是说这个东西默认不做任何操作的,它是赖在那里什么都不干,除非你去踢上脚。 而且,这个控件就像一个四方鸭,你踢一脚它就前进一步,你不踢,它又在那里尸位素餐,什么都不干了。 还是用一个例子来说明吧,不过,还是先说一下重要的东西。 Thumb有几个核心事件,都是与拖动有关。 往深一层想,它是什么?对,就是我们常见的滚动条里面的滑块,就是我们在网格里面可以拖动的分隔线,就是窗口右下角用于通过拖动来改变窗口大小的小东西。 Thumb的核心事件有: ...
欢迎加入微群 DotNet中国:http://qun.t.qq.com/67176884 在WPF中获Listview中选中的项,与WinForm里面有着很大的区别,要亲身去研究一下在WPF中如果处理,其实也不难,来,下面我们一起来通过一个简单的示例来感悟一下吧。 第一步就是建立一个WPF应用程序项目,这个不用描述了,节省了31个字。 第二步,为了实现数据绑定,先写一个简单的员工类,包含三个属性——姓名、年龄、城市。 public class Emp { public string Name { get; set; } p ...
欢迎加入微群 DotNet中国:http://qun.t.qq.com/67176884 在WPF中获Listview中选中的项,与WinForm里面有着很大的区别,要亲身去研究一下在WPF中如果处理,其实也不难,来,下面我们一起来通过一个简单的示例来感悟一下吧。 第一步就是建立一个WPF应用程序项目,这个不用描述了,节省了31个字。 第二步,为了实现数据绑定,先写一个简单的员工类,包含三个属性——姓名、年龄、城市。 public class Emp { public string Name { get; set; } p ...
我很奇怪的是,微软那厮是怎么搞的,Blend里面居然不能编辑GridView的样式,十万般无奈之下,只好手写XAML来处理了。 要想知道一个控件的样式是如何设置,看控件类的定义很重要,我们来看看GridView是如何定义的: [StyleTypedPropertyAttribute(Property = "ColumnHeaderContainerStyle", StyleTargetType = typeof(GridViewColumnHeader))][ContentPropertyAttribute("Columns")]public clas ...
我很奇怪的是,微软那厮是怎么搞的,Blend里面居然不能编辑GridView的样式,十万般无奈之下,只好手写XAML来处理了。 要想知道一个控件的样式是如何设置,看控件类的定义很重要,我们来看看GridView是如何定义的: [StyleTypedPropertyAttribute(Property = "ColumnHeaderContainerStyle", StyleTargetType = typeof(GridViewColumnHeader))][ContentPropertyAttribute("Columns")]public clas ...
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——DisplayMenber和ValueMenber,分别绑定用于显示和用于存放用户选择值两个字段,最典型的应用类似于key-value形式的数据字段,如学生表中的学号(ID)和学生姓名。 其实,在WPF中原理都是一样的,来,我们一起动手玩玩。 如何新建应用程序就不用介绍了,省略33个字。 在窗口中拖放一个ComboBox控件和一个按钮,按钮用来检测所选择的值。 切换到代码 ...
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——DisplayMenber和ValueMenber,分别绑定用于显示和用于存放用户选择值两个字段,最典型的应用类似于key-value形式的数据字段,如学生表中的学号(ID)和学生姓名。 其实,在WPF中原理都是一样的,来,我们一起动手玩玩。 如何新建应用程序就不用介绍了,省略33个字。 在窗口中拖放一个ComboBox控件和一个按钮,按钮用来检测所选择的值。 切换到代码 ...
本系列文章,是从我的QQ空间转过来的。 上一文中,我们分析了依赖项属性的注册和定义方法,并解释了依赖项属性的注册过程,但是,有一个疑问会困惑着我们,既然依赖项属被声明为静态只读字段,那为什么它的值可以被改变呢?难道你不觉得很奇怪吗? 微软的葫芦里到底卖的什么药呢?我们来看看。 前文中我们提到过,设置依赖项属性的值使用SetValue方法,那好,我们就从SetValue方法入手。 SetValue方法的定义如下: public void SetValue(DependencyProperty dp, object value) { base.VerifyAccess( ...
本系列文章,是从我的QQ空间转过来的。 上一文中,我们分析了依赖项属性的注册和定义方法,并解释了依赖项属性的注册过程,但是,有一个疑问会困惑着我们,既然依赖项属被声明为静态只读字段,那为什么它的值可以被改变呢?难道你不觉得很奇怪吗? 微软的葫芦里到底卖的什么药呢?我们来看看。 前文中我们提到过,设置依赖项属性的值使用SetValue方法,那好,我们就从SetValue方法入手。 SetValue方法的定义如下: public void SetValue(DependencyProperty dp, object value) { base.VerifyAccess( ...
在上一文中,我们用传统面向对象的方法来定义了一个类,而我们同时把该类的实例绑定到两个文本框,第一个文本框用于输入值,第二个文本框用于根据第一个文本框中的输入来取得属性值。 在上例中我们已经明了,虽然能做到同步更新,但这同步更新并不是实时的。而是在控件失去焦点或点击按钮之后才发生,因为那个时候是重新进行了绑定,所以,一般的属性声明并没有实现实时更新。 下面,我们把Student类进行改动,把Name属性改为依赖项属性。 public class Student:DependencyObject { //注册依赖项属性 public static readonly Dep ...
在上一文中,我们用传统面向对象的方法来定义了一个类,而我们同时把该类的实例绑定到两个文本框,第一个文本框用于输入值,第二个文本框用于根据第一个文本框中的输入来取得属性值。 在上例中我们已经明了,虽然能做到同步更新,但这同步更新并不是实时的。而是在控件失去焦点或点击按钮之后才发生,因为那个时候是重新进行了绑定,所以,一般的属性声明并没有实现实时更新。 下面,我们把Student类进行改动,把Name属性改为依赖项属性。 public class Student:DependencyObject { //注册依赖项属性 public static readonly Dep ...
本系列文章是从我的QQ空间拷过来的。 依赖项属性可以称得上是WPF中比较难理解的概念,为了搞清楚这个概念,我都把.NET类库进行了反编译,但是,其结果我也是想到了的,微软不是傻子,.NET那么庞大,就算能被你反编译了,你也看不懂它的代码。 所以说,经过我一番研究,虽然没有把.NET的每一行代码都弄明白,不过,黄天终不负有心人,依赖项属性的使用方法与基本原理,我可以说已经弄明白了,恰巧,前两天在网上看到一篇讨论依赖项属性的文章,写得还不错,作者估计也是一位高人,再加上我个人的研究,从实际应用的角度来说,我现在已经掌握了依赖项属性的使用方法了,不妨告诉你,其实很简单,可以这么说,整个WP ...
Global site tag (gtag.js) - Google Analytics