摘要:
这个控件,真不好介绍,MSDN上也是草草几句,反正就是可以让用户拖动的玩意儿,但是,你会发现,当你在该控件上拖动时,它没有反响,也就是说这个东西默认不做任何操作的,它是赖在那里什么都不干,除非你去踢上脚。而且,这个控件就像一个四方鸭,你踢一脚它就前进一步,你不踢,它又在那里尸位素餐,什么都不干了。还是用一个例子来说明吧,不过,还是先说一下重要的东西。Thumb有几个核心事件,都是与拖动有关。往深一层想,它是什么?对,就是我们常见的滚动条里面的滑块,就是我们在网格里面可以拖动的分隔线,就是窗口右下角用于通过拖动来改变窗口大小的小东西。Thumb的核心事件有:DragStarted——当你在它上面 阅读全文
摘要:
欢迎加入微群 DotNet中国:http://qun.t.qq.com/67176884在WPF中获Listview中选中的项,与WinForm里面有着很大的区别,要亲身去研究一下在WPF中如果处理,其实也不难,来,下面我们一起来通过一个简单的示例来感悟一下吧。第一步就是建立一个WPF应用程序项目,这个不用描述了,节省了31个字。第二步,为了实现数据绑定,先写一个简单的员工类,包含三个属性——姓名、年龄、城市。 public class Emp { public string Name { get; set; } public int Age { get... 阅读全文
摘要:
我很奇怪的是,微软那厮是怎么搞的,Blend里面居然不能编辑GridView的样式,十万般无奈之下,只好手写XAML来处理了。要想知道一个控件的样式是如何设置,看控件类的定义很重要,我们来看看GridView是如何定义的:[StyleTypedPropertyAttribute(Property = "ColumnHeaderContainerStyle", StyleTargetType = typeof(GridViewColumnHeader))][ContentPropertyAttribute("Columns")]public class G 阅读全文
摘要:
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——DisplayMenber和ValueMenber,分别绑定用于显示和用于存放用户选择值两个字段,最典型的应用类似于key-value形式的数据字段,如学生表中的学号(ID)和学生姓名。其实,在WPF中原理都是一样的,来,我们一起动手玩玩。如何新建应用程序就不用介绍了,省略33个字。在窗口中拖放一个ComboBox控件和一个按钮,按钮用来检测所选择的值。切换到代码视图,定义一个Employee类和一个 阅读全文
摘要:
本系列文章,是从我的QQ空间转过来的。上一文中,我们分析了依赖项属性的注册和定义方法,并解释了依赖项属性的注册过程,但是,有一个疑问会困惑着我们,既然依赖项属被声明为静态只读字段,那为什么它的值可以被改变呢?难道你不觉得很奇怪吗?微软的葫芦里到底卖的什么药呢?我们来看看。前文中我们提到过,设置依赖项属性的值使用SetValue方法,那好,我们就从SetValue方法入手。SetValue方法的定义如下:public void SetValue(DependencyProperty dp, object value){ base.VerifyAccess(); PropertyMet... 阅读全文
摘要:
在上一文中,我们用传统面向对象的方法来定义了一个类,而我们同时把该类的实例绑定到两个文本框,第一个文本框用于输入值,第二个文本框用于根据第一个文本框中的输入来取得属性值。在上例中我们已经明了,虽然能做到同步更新,但这同步更新并不是实时的。而是在控件失去焦点或点击按钮之后才发生,因为那个时候是重新进行了绑定,所以,一般的属性声明并没有实现实时更新。下面,我们把Student类进行改动,把Name属性改为依赖项属性。 public class Student:DependencyObject { //注册依赖项属性 public static readonly DependencyProperty 阅读全文
摘要:
本系列文章是从我的QQ空间拷过来的。依赖项属性可以称得上是WPF中比较难理解的概念,为了搞清楚这个概念,我都把.NET类库进行了反编译,但是,其结果我也是想到了的,微软不是傻子,.NET那么庞大,就算能被你反编译了,你也看不懂它的代码。所以说,经过我一番研究,虽然没有把.NET的每一行代码都弄明白,不过,黄天终不负有心人,依赖项属性的使用方法与基本原理,我可以说已经弄明白了,恰巧,前两天在网上看到一篇讨论依赖项属性的文章,写得还不错,作者估计也是一位高人,再加上我个人的研究,从实际应用的角度来说,我现在已经掌握了依赖项属性的使用方法了,不妨告诉你,其实很简单,可以这么说,整个WPF都很简单,和 阅读全文
摘要:
一般来说,制作自动提交留言信息的程序,要分为以下步骤:一、分析填写留言页面的HTML代码,了解页面结构,重点是查找里面的form标记,因为那是提交数据的地方;二、用抓包工具抓取数据包(如WSockExpert),总结有哪些数据要提交;三、理顺思路,开工;四、调试完成如果要重复提交数据(什么?做连环炮?),最简单的方法是使用循环,没置一个条件可以在适当的时候结束循环就可以了,不要搞成死循环。当然,也可以使用定时器如Timer之类的组件,每隔一段时间提交一次。在没有设置验证码的页面比较好处理,如果设置了验证码,可以尝试去识别,如果识别不了,也只能手动输入了。为了确保能够每次顺利提交,最好每次的内容 阅读全文
摘要:
//服务器端代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Imaging;using System.Text;using System.Windows.Forms;using System.IO;using System.Net;using System.Net.Sockets;using Microsoft.Win32;using System.Threading;na 阅读全文
摘要:
在文件IO中,经常要处理一些与文件路径或文件名有关的东西,说白了,非常类似字符串的处理,我个人理解,处理路径信息,可以等同于特殊字符串的处理;不过,用字符串的处理方式去处理文件路径问题,有些复杂,.NET的System.IO命名空间中,提供了一个Path类,以及一系列静态方法,可以用来处理常见的有关文件路径的字符串表示方式。class Program { static void Main(string[] args) { if (args == null || args.Length < 1) return; string myPath = args[0]; Console.WriteL 阅读全文