2013年1月18日

关于Type类型的继承关系

摘要: 原文地址 http://www.cnblogs.com/mgen/archive/2011/06/27/2091725.html 阅读全文

posted @ 2013-01-18 11:07 MikeRen 阅读(207) 评论(0) 推荐(0) 编辑

2013年1月6日

异步更新UI

摘要: 在写多线程的时候突然发现自己新建的线程无法更新UI,一番猛查,了解到UI只能在创建他的线程中更新,其他线程是没有权限的,只能通过这样的方式更新this.Invoke或者this.BeginInvokeWPF中Control类没有这方法,只能通过调配器this.Dispatcher.BeginInvoke或者Invoke,前者是异步,后者是同步,也就是说前者不需要等待,就可以在调用线程中继续执行。由于一般我们创建UI都是在主线程,所以我们常用的UI线程就是主线程,也就是说当主线程被占用的时候,UI是不会更新的,所以要想实时更新UI,在主线程中这样写this.Dispatcher.BeginInv 阅读全文

posted @ 2013-01-06 16:42 MikeRen 阅读(2470) 评论(0) 推荐(0) 编辑

2012年12月28日

事件源 sender source originalSource

摘要: 刚开始用WPF,总是搞不清三个事件源的关系,经过测试,终于有点明白了:sender 事件的发送者 说白了就是谁调用的事件处理器Source事件源 就是谁激发(raise)的事件 不使用路由事件的话 sender跟source是同一对象OriginalSource 也是事件源 但他与Source不同的地方在于他是原始事件源,真正的激发事件的源头,当没有进行封装的时候,二者是同一对象从下面这个例子中可以看出明显的区别1.自定义控件XAML<UserControl x:Class="SourceTest.UserControl1" xmlns="http://sc 阅读全文

posted @ 2012-12-28 10:24 MikeRen 阅读(589) 评论(0) 推荐(0) 编辑

2012年12月27日

HierarchicalDataTemplate

摘要: 之前写控件模板的时候已经用过,当时觉得理解了,一下手,又有很多问题,有些概念不清楚,有些属性不知道什么意思,今天就细化一下这是MSDN上的一个例子,在这个示例中,ListLeagueList是League对象的列表。每League对象具有Name和Division对象的集合。每Division具有Name和Team对象的集合,因此,每Team对象具有Name,就是这样一个数据结构View Code <Window x:Class="SDKSample.Window1" xmlns="http://schemas.microsoft.com/winfx/200 阅读全文

posted @ 2012-12-27 10:37 MikeRen 阅读(1942) 评论(0) 推荐(0) 编辑

2012年12月21日

第一次写WPF Demo遇到的问题

摘要: 进公司来第一次写WPF的Demo,一位师姐给布置的小任务,其实很简单,写一个登陆窗体,这要是写ASP.NET程序,1小时连功能都能实现完,但是在WPF里,一动手就发现了很多问题u1.布局问题,感觉Grid布局就跟网页中的Table布局差不多,于是细分了很多的单元格,结果最后的定位还是依靠很多的Margin,还不如少来点格子2.界面中用到的图片,包括背景图片等,都直接写相对路径修改方法:放到资源字典文件中,图片写成画刷3.对于ControlTemplate的理解不是很好,主要是明明是个模板,非得标记在<style>里后来终于想明白了,所谓控件模板,就是描述控件的表现形式,表现成什么样 阅读全文

posted @ 2012-12-21 09:39 MikeRen 阅读(401) 评论(0) 推荐(0) 编辑

2012年12月19日

“菲波纳锲”数列 计算

摘要: 学习真是奇妙,本想查找些异步进程的东西,实践的时候突然发现异步控制UI有些不大一样,于是去查异步更新UI,结果查到了BackgroundWorker,于是去查这个类,又在MSDN上找到了一个示例,是以计算 斐波纳契 数列来显示进度的,示例是这样的BackgroundWorker MSDN示例 1 using System; 2 using System.Collections; 3 using System.ComponentModel; 4 using System.Drawing; 5 using System.Threading; 6 using System.Windows... 阅读全文

posted @ 2012-12-19 16:31 MikeRen 阅读(914) 评论(0) 推荐(0) 编辑

2012年12月12日

WPF之Binding

摘要: Binding即绑定,听上去像一个音译词,很有趣,我们生活中常用的类似还有一个词,叫want to,我们叫妄图,只不过略加了感情色彩,扯远了,回到正题说绑定。感觉这个东西在WPF中的处于核心位置,他就像一座桥梁,把我们要处理的UI、逻辑数据联系到了一起,也正因为他,使得我们的开发理念从UI驱动转向了数据驱动,使我们能够更专注于业务逻辑。既然说Binding像桥梁,我们就来说说桥的两端,以及他们是如何联系的。我们把这座桥的两端分别叫做Source(源)和Target(目标),当然哪端是源,哪段是目标都是可以相互转化的,还可能是双向的。1.Source的范围非常广,凡是可以封装数据,并且通过属性的 阅读全文

posted @ 2012-12-12 12:56 MikeRen 阅读(708) 评论(0) 推荐(0) 编辑

2012年12月11日

WPF之HierarchicalDataTemplate

摘要: HierarchicalDataTemplate顾名思义,分层数据模板,就是用来定义分层数据样式的模板,一般多用于MenuItem和TreeViewItem包含几个重要属性DataType指定模板用于哪种数据类型ItemsSource指定该类数据的子集,即下一层显示那些数据内容 指定数据如何显示 绑定哪个属性MSDN上的一个例子:1.定义数据集public class League { public League(string name) { _name = name; _divisions = new List<D... 阅读全文

posted @ 2012-12-11 12:37 MikeRen 阅读(21764) 评论(1) 推荐(1) 编辑

2012年12月10日

WPF之DataTemplate

摘要: DataTemplate顾名思义,就是数据模板,用来指定数据的表现形式。这对于ItemsControl类的控件尤其有用,可以改变列表项的外观,更具有表现能力。例如View Code <Grid> <Grid.Resources> <src:Customers x:Key="customers"/> </Grid.Resources> <ListBox ItemsSource="{StaticResource customers}" Width="350" Margin=" 阅读全文

posted @ 2012-12-10 11:12 MikeRen 阅读(11184) 评论(2) 推荐(5) 编辑

2012年12月7日

WPF自定义命令

摘要: 自定义命令,可以分为两个层次来理解1.声明自己的RoutedCommand实例,这个层次比较浅2.从实现ICommand接口开始,这个才算的上真正的自定义命令自定义命令的目的是为了把业务逻辑转移到命令内部,而不是需要捕捉到命令之后再回过头去处理。要想自定义命令,就不能不了解命令系统的几个要素:1.命令(Command):WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的就是RoutedCommand类.2.命令源(Command Source):命令的发送者,是实现了ICommandSource的类,平时用的Button就实现了这个接口3.命令目标(Command Targe 阅读全文

posted @ 2012-12-07 11:44 MikeRen 阅读(2119) 评论(0) 推荐(0) 编辑

导航