摘要: 在做一个滑动的东西,里面有一些ListBoxItem,每个Item会触发一些事件。每次我滑动的时候如果从没有Item的地方滑到有Item的地方,或者从Item里面往外滑动时,都会触发到Item里面的事件。本来Item是用SelectionChanged的这个事件的。但对于我这种菜鸟来说表示消化不了。所以我把这些事件放到了PreviewMouseUp中,然后先在PreviewMouseDown中抓住鼠标的坐标,然后再在Up中计算出其中的坐标的差,然后在一定的范围内就代表这这个东西没有滑动而是正常的点击,而如果移动了一定的距离则表明我是在滑动,然后就可以不触发其中的事件。 下面我做了一个小的... 阅读全文
posted @ 2012-09-17 22:12 世界很灰暗 阅读(504) 评论(1) 推荐(0) 编辑
摘要: WPF中如果我设置完动画,再通过其他的设置来修改动画中的属性时,那这些属性就被锁住了,这时这个属性是不能够设置的。有很多种方法可以来把这个动画解锁。我做了一个小的Demo来设置这个值。 <DockPanel LastChildFill="True"> <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Center"> <Button Name="cmdStart& 阅读全文
posted @ 2012-09-08 15:12 世界很灰暗 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 1.首先,查下MSDN里面的定义: 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件。 实现定义:路由事件是一个 CLR 事件,可以由RoutedEvent类的实例提供支持并由 Windows Presentation Foundation (WPF) 事件系统来处理。 然后,路由事件里面使用以下三个路由策略:冒泡、隧道、直接。简单的说就是冒泡事件是从事件源到根元素一次被引发,而隧道则相反。直接则是只有源元素本身调用以及相应。如果比较形象一点的话可以看一下这个http://www.cnblogs.com/WilliamJiang/... 阅读全文
posted @ 2012-09-08 14:50 世界很灰暗 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 对于普通的实体类的绑定,如果只是简单的添加删除的话不需要用到INotifyPropertyChanged接口,这样的话比较简单,只需要在datatemplate中绑定后台的属性即可。然后直接往里面加入数据就可以了。 如果用到了INotifyPropertyChanged这个接口的话这个可以实现在后台增加删改数据的时候前台能够同步显示。同时,前台修改数据,也能同步反应到绑定源中。使用这个接口时需要使用ObservableCollection集合类,这个类就是实现了INotifyCollectionChanged接口的一个集合类。还要设置IsSynchronizedWithCurrentIt... 阅读全文
posted @ 2012-08-30 23:04 世界很灰暗 阅读(879) 评论(0) 推荐(0) 编辑
摘要: 学习了下ListBox的Style,开始的时候比较混乱,但理顺了再写个Demo后就能一目了然的看出中间的差别了。下面来一个一个的理解下: 1.Template:这个指的是ListBox这个控件的整体外观,这个类名为ControlTemplate,可以定义一些控件的自身外观,如圆角、颜色等。其中可以用<ItemsPresenter/>来替代容器中的子元素,然后在后面的Template中继续设置,或者也直接可以把模板写在中间,但需要加上IsItemsHost="True"在容器中显示这个子元素。我还是把他分开来写,这样能够清楚的分出每一个Template。下面是一个 阅读全文
posted @ 2012-08-14 23:12 世界很灰暗 阅读(1311) 评论(0) 推荐(0) 编辑
摘要: 这两天在学习写一个关于RichTextBox的自定义控件,把RichTextBox加上一个行号。要在WPF中自定义一个控件,使用UserControl与CustomControl都是可以的。UserControl在开发上简单快速,可以将已有的控件作为子元素拼成UserControl并修改外观,但对模板样式支持度不好。既然做WPF的,那CustomControl更加能体现风格,这个应用的也更加的广泛,所以我选择了CustomControl来自定义我的控件,虽然我不知道我这么做是否合适= = 首先先建立新的project然后自定义控件,会发现中间会有一个\Themes\Generic.xam... 阅读全文
posted @ 2012-08-08 00:19 世界很灰暗 阅读(2193) 评论(1) 推荐(0) 编辑
摘要: 若在C#中想比较两个字符串,但是两个字符串中又夹杂着许多的符号,如果单纯的想比较字母或数字,则不能使用最简单的Compare来比较他们。一般的常规方法是比较不出的。只能使用CultureInfo中的CompareInfo来比较。然后有一个CompareOptions.IgnoreSymbols选项可以供选择。同时在引用中也要加入System.Globalization才能使用这个比较。若为0则表示相等。View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;usi.. 阅读全文
posted @ 2012-07-12 14:02 世界很灰暗 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 最近在写一个类似文本编辑器的东西,有选择字体样式和大小的功能,但在设计的时候遇到了一些问题。 如果需要设计像QQ聊天时那样的改变字体大小及样式的话(即选择一个字体样式或大小而下面的字体将全部改变),只要把RichTextBox和Combobox绑定就可以了。这样比较简单。不过WPF中的默认字体(System.Windows.Media.FontFamily)是没有中文字体的,所以我用了安装的字体(System.Drawing.FontFamily)。因此就需要自己来写这个类,同时需要添加System.Drawing的这个引用。同样那字号的话为了看起来明显可以挑一些来写一个新类。代码如下:... 阅读全文
posted @ 2012-07-07 14:47 世界很灰暗 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test6 { class Program { //题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 //1.程序分析:利用辗除法。 static void Main(string[] args) { Console.WriteLin... 阅读全文
posted @ 2012-06-19 16:01 世界很灰暗 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 属性和依赖属性 属性是我们很熟悉的,封装类的字段,表示类的状态用,可以被类或结构使用。常见的属性如下:public class Student{ private String _name; public string Name { get { return _name; } set { _name = value; } }}在面向对象中,属性大量的存在供程序员们使用,但是基本绝大多数都会保持默认值,没有被修改,会造成极大的浪费。对系统的开销也不小。 因此,在WPF中,它提供了可用于扩展CLR属性的服务,来替换原来的.NET属性。叫做依赖属... 阅读全文
posted @ 2012-06-06 10:39 世界很灰暗 阅读(304) 评论(0) 推荐(0) 编辑