摘要: 接着上一回的话题,继续来研究数据批示特性,先拿简单的RageAttribute来弄弄,接着上次的示例,添加一个Age属性,并加上RangeAttribute。 [Range(20,60,ErrorMessage="年龄范围在20与60之间。")] [Display(Name="年龄",Description="歌手年龄。")] public int Age { get; set; } 接着把XAML也补完整。 <sdk:Label x:Name="lbAge" Target="{Binding El 阅读全文
posted @ 2011-12-12 21:48 东邪独孤 阅读(174) 评论(0) 推荐(0)
摘要: 按照MSDN的说明以及平时的习惯,我们要获取鼠标单击时的相对坐标,都会使用MouseClick等事件,今天,偶然发现,原来Click事件也可以。/* 惊天地泣鬼神的考古业绩。 * 原来Cilck事件也能获取鼠标点击的当前坐标, MSDN上说要用MouseClick事件,哈哈 * 原来Click事件也可以!!! * 但是,如果通过键盘引发事件,而不是通过鼠标操作,即不能获取。 * 鼠标右键单击无效。 */using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usin. 阅读全文
posted @ 2011-12-10 16:57 东邪独孤 阅读(419) 评论(0) 推荐(0)
摘要: 程序是基于WPF开发的,动态创建对象和动画。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging 阅读全文
posted @ 2011-12-10 00:18 东邪独孤 阅读(240) 评论(0) 推荐(0)
摘要: 第一次听到这个概念,你是否有点陌生?MSDN上也没有特意的去说明。不要看到这个名词不太熟悉,其实数据批示,玩过C#的人都会非常熟悉,所谓数据批示,其本质就是特性(Attribute),怎么样,现在有点似曾相识了吧? Attribute可以附加在命名空间、类,以及成员定义上的一种“特殊描述”,如下所示,这种标志枚举相信大家在使用COM互操作性或者引入平台API的时候用得很多了。特性在使用的时候,可以忽略“Attribute”,如上面的,可以写成Flags。 Silverlight(银光)中的“数据批示”概念现在不陌生了,那么,它为何要叫数据批示呢?因为这些特性类都是用于定义实体类的元数据的,它很 阅读全文
posted @ 2011-12-09 07:55 东邪独孤 阅读(249) 评论(0) 推荐(0)
摘要: 用DataGrid进行数据验证,一句话:太简单了,为什么?因为它自身已经具备了很完善的数据验证功能。好,说多无益,最好的办法,来,写个例子试试。老规矩,先准备点数据来测试,既然要数据验证,就不能全弄字符串的,弄点整型的,日期型的,这样就有利于演示。 public class Employee { public string Name { get; set; } public int Age { get; set; } public DateTime Birthday { get; set; } }该类声明三个属性,分别是字符串,整型,... 阅读全文
posted @ 2011-12-08 08:29 东邪独孤 阅读(304) 评论(0) 推荐(0)
摘要: Slider控件,讲行通俗一点就是我们很常见的滑块,控件的外观上显示一系例刻度值,并存在一个可以被拖动的滑块,用户可以通过拖动滑块来控制控件的值。如下图所示,是Windows系统的音量调节滑块。下图所示为QQ音频聊天设置窗口中的音量调节滑块。这样,我们就以很直观的方式认识了Slider控件。接下来看看该控件的构成:然后,查看Slider类的定义,从中找出主体部分。[LocalizabilityAttribute(LocalizationCategory.Ignore)][TemplatePartAttribute(Name = "PART_SelectionRange", 阅读全文
posted @ 2011-11-21 20:30 东邪独孤 阅读(1351) 评论(0) 推荐(2)
摘要: 关键点:Track控件没有默认模板,它包括三个部分DecreaseRepeatButton——这是一个RepeatButton即滑块左(上)的部分;IncreaseRepeatButton——同上,即滑块右(下)部分;Thumb——很明显了,这是拖动的滑块,请参考前面的文章。<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.mi 阅读全文
posted @ 2011-11-21 20:21 东邪独孤 阅读(569) 评论(0) 推荐(0)
摘要: 关键点:要设置ListView的行样式,设置Listview的ItemContainerStyle属性,但在本例中,由于我把样式应用于所有的ListViewItem,故不用设置该属性。<Window x:Class="Wpf_GridHeaderStyle_sample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x 阅读全文
posted @ 2011-11-17 22:09 东邪独孤 阅读(773) 评论(0) 推荐(1)
摘要: 上一篇文章简单说了一下Expander控件,本文将编写一个自义模板的Expander控件,如下图所示:<Window x:Class="Expander_Sample2.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Wid 阅读全文
posted @ 2011-11-17 21:55 东邪独孤 阅读(444) 评论(0) 推荐(0)
摘要: 欢迎加入.NET技术交流群:189931386Expander是一个可以展开和折叠的控件,它包含两部分——标头和内容。标头通Header属性来设置,内容通过Conent属性设置,如下面一个简单的例子: <Expander ExpandDirection="Down" Width="96"> <Expander.Header> <TextBlock Text="标题" FontWeight="Bold"/> </Expander.Header> <Expander 阅读全文
posted @ 2011-11-14 21:33 东邪独孤 阅读(508) 评论(0) 推荐(0)