zip's

while(true) { Write it down; Think about it; Refine it; Sleep(); }

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

12 2010 档案

摘要:当程序在进行一项耗时的工作时,加上一个UI显示当前的进度,这样可以避免让用户等到不耐烦,客户可能以为死机了,可能狂点鼠标,造成更差的效率问题。对于这个问题,解决方法有多种:1,都在主线程中进行,将耗时任务分解成小块,主线程处理,同时更新GUI,MSDN中有个很好的例子 "A Single-Threaded Application with a Long-Running Calculation";2,工作线程为非GUI线程,负责处理耗时工作,主线程更新GUI。这种方法只有一个GUI线程,对多线程编程,这个是通常的选择;3,主线程,工作线程都是UI线程,主线程处理耗时工作,工作线程负责处理UI更新 阅读全文
posted @ 2010-12-23 11:20 zip's 阅读(1040) 评论(0) 推荐(0)

摘要:提示1:使用 RowDefinition.MinHeight/MaxHeight, ColumnDefinition.MinWidth/MaxWidth;使用时应尽可能靠近 virtual tree 的根部。它们都是 Attached Property,所以在使用 Grid 时才有用;[代码] 阅读全文
posted @ 2010-12-22 15:32 zip's 阅读(146) 评论(0) 推荐(0)

摘要:适度的结合 xmal 和 code behind在学习和实践了一段日子 data binding 后,一直追求完全使用 xaml 而不用 code behind 去实现 data/command binding。感觉这个想法不是很正确,如果希望设计出完美支持 xaml 的 view model 和 data model 还是不容易,尤其是经验有限的时候。问题:举一个例子,设想你有一个 editable 的 combobox ,有2个按钮,一个“rename”,一个 “add name” (这里不讨论为什么这么设计,就要这么实现)。希望使用 command binding 来实现 rename。 阅读全文
posted @ 2010-12-15 17:32 zip's 阅读(223) 评论(0) 推荐(0)

摘要:MFC的工具栏和停靠窗口的状态在程序启动时从注册表中load,在程序退出时save。- CWindAppEx::m_bSaveState 标记是否需要自动存储;- CWindAppEx::OnClosingMainFrame() 重载,可以自定制存储行为;- 注册表key:HKEY_CURRENT_USER\Software\company name\porduct name\Workspace 阅读全文
posted @ 2010-12-13 17:12 zip's 阅读(324) 评论(0) 推荐(0)

摘要:1,使用 WPF 自定制:用 2 个 RepeatButton,用 ViewBox 包装“”“”作为 Content ,再旋转 90 度。2,包装 Windows.Forms.DomainUpDown 或者 Windows.Forms.NumericUpDown 阅读全文
posted @ 2010-12-06 17:37 zip's 阅读(250) 评论(0) 推荐(0)

摘要:例子1 :需要获得 ListBox 中的 Canvas方法1:Loaded 事件[代码]方法2:[代码]例子2:想获取一个可编辑的 ComboBox 中的 TextBox (顺便说一句,如果不可编辑,则是个 TextBlock,可以使用 SNOOP 来观察)可编辑的ComboBox含有一个TextBox使用VisualTreeHelper找到TextBox 阅读全文
posted @ 2010-12-05 21:29 zip's 阅读(295) 评论(0) 推荐(0)

摘要:-metadata 提供了定制 porperty 的能力,你不需要重写整个类,就能得到个性化的东西- metadata 回调机制可以被巧妙的应用,例如,实现command binding到items control的selection changed 阅读全文
posted @ 2010-12-03 17:29 zip's 阅读(159) 评论(0) 推荐(0)