随笔分类 -  WPF

摘要:以前在用WinForm的时候,可以通过GDI+接口在窗体上动态绘制自定义的图形。在WPF中有没有对应的API呢,最近项目中用到了这个,在这里总结一下。 WPF中的Drawing主要提供了几类API: 1. Drawing类型 该组类型主要用来对绘制的对象的描述。比如GeometryDrawing是描述一个几何图形的Drawing,它的Geometry属性定义了它所描述的几何图形是什么样子... 阅读全文
posted @ 2014-07-12 10:47 self.refactoring 阅读(6145) 评论(1) 推荐(1) 编辑
摘要:如果WPF Content是寄宿在Win32窗体或Windows Form中,则在WPF模块中可能不会存在WPF Window(WPF模块的根可能是个UserControl).如果在WPF模块中弹出对话框,则设定其Owner不是那么方便。WPF Window class只提供了Window类型的Ow... 阅读全文
posted @ 2014-04-15 15:07 self.refactoring 阅读(2777) 评论(0) 推荐(0) 编辑
摘要:记得第一次看到MarkupExtension是在几年前的一次面试中。很不好意思说,当时不知道是什么东东。最近在项目中又用到了WPF的这个功能,决定在博客里记录一下。 在Xaml中为某个对象以Attribute的方式设置对象的属性时,attribute的值默认只能是字符串。例如: 上面为Text属性设置值"Text"。如果属性的类型为String(如上面代码中的Text属性),这是没有问题... 阅读全文
posted @ 2013-12-07 22:40 self.refactoring 阅读(4051) 评论(1) 推荐(3) 编辑
摘要:在Xaml中定义某种类型的一个element就相当于构造了一个此类型的对象。如:但是这个对象如何去访问?类似于CLR中在栈中存放对象在堆中的地址,然后将该栈的地址命名以便对象访问。x:Name是为在xaml中定义的对象赋予一个唯一标识的名字,方便其它代码访问。而FrameworkElement.Name属性是为所有FrameworkElemet派生类提供的与x:Name等效的更简便的方式。 阅读全文
posted @ 2013-11-23 23:06 self.refactoring 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1. xaml中直接映射为prefixxmlns:prefix="clr-namespace:MyApplication.Modules.Entity;assembly=MyAssembly".2.通过XmlnsDefinitionAttribute在Assembly源码中定义:在Assembly的AssemblyInfo.cs中添加assembly level的attribute将clr namespace映射为xml namespace.[assembly:XmlnsDefinition("http://mynamespace.codelife.com&quo 阅读全文
posted @ 2013-11-23 22:17 self.refactoring 阅读(422) 评论(0) 推荐(0) 编辑
摘要:首先通过WindowInteropHelper类,我们可以获取WPF Window的Handle.WindowInteropHelper helper = new WindowInteropHelper(window);IntPtr handle = helper.Handle;然后,我们使用Handle可以创建一个HwndSource对象,HwndSource对象为我们提供了接口能够注册窗口消息的处理程序。HwndSource hwndSource = HwndSource.FromHandle(handle);hwndSource.AddHook(new HwndSourceHook(Ho 阅读全文
posted @ 2013-09-28 22:53 self.refactoring 阅读(5928) 评论(0) 推荐(0) 编辑
摘要:一开始看到WPF里面经常用如下语句来构造资源文件Uri:Uri uri = new Uri("/AssemblyName;component/image.png");我还以为这种格式的字符串是URI标准规定的,但是网上查了一下却没发现有这种格式的URI字符串。URI是统一资源标识符,通用文法为:协议名(http,https,ftp,file等)+冒号+协议所对应的内容URI又分为URL和URN,URL是用来定义一个资源的访问路径.而URN则是用来定义一个资源的名称。(http://zh.wikipedia.org/zh/统一资源标志符)仔细看了一下MSDN,才发现上面格式的 阅读全文
posted @ 2012-10-08 23:05 self.refactoring 阅读(3518) 评论(3) 推荐(1) 编辑
摘要:Wpf的DataBinding为我们将View与logic的分离提供了便利。特别是利用MVP模式,可以将大部分的UI交互逻辑通过绑定Command来转移到Presenter中来,使我们可以专注于操作业务数据。但是微软提供的控件中好像还有很多的控件根本没有Command属性,只有普通的Event。这样的话就没有办法利用绑定将逻辑转移到Presenter中。看到xaml.cs(每一个xaml文件的codebehind文件)文件还是有很多的事件处理代码感觉非常不爽,于是想了个办法来将Event的处理转换成执行Command,这样就可以在Presenter里来处理EventHandler的逻辑了。xa 阅读全文
posted @ 2010-12-05 22:13 self.refactoring 阅读(3701) 评论(0) 推荐(2) 编辑
摘要:1.定义Keyboard Focus可以理解为物理焦点。就是整个桌面上可以响应键盘输入的地方,整个桌面在某个时刻只可能有一个地方能接受键盘的输入,因此整个桌面在某个时刻只可能有一个Keyboard Focus.Logic Focus从字面上理解是逻辑焦点。一般带“逻辑”字眼的东西都有可能是“虚”的,在这里也不例外。Logic Focus并不是真正的焦... 阅读全文
posted @ 2009-12-06 15:15 self.refactoring 阅读(1180) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示