03 2014 档案
摘要:阅读目录DebugView输出信息到DebugView的几种方式DebugView与日志框架比较ConditionalAttribute详解与条件编译TRACE常量Debug类与Trace类的区别Debug、Debugger、Kernel32的联系配置TraceListenerDebug编译与Release编译的区别总结的重要性DotNet程序的调试,是DotNet程序员必备的技能之一,开发出稳定的程序、解决程序的疑难杂症都需要很强大的调试能力。DotNet调试有很多方法和技巧。现在本文就介绍一下借助DebugView工具进行调试的方法,以及由DebugView引申出来的知识点。回到顶部Deb
阅读全文
摘要:WPF中的Style类似于Web应用程序中的CSS,它是控件的一个属性,属于资源的一种。通常把Style定义在Resources中,使用方式如下: button1.style=(style)Resources["btnstyle"];如果只需对控件进行小幅度修饰(调整大小、位置、字体、颜色等)就用style;如果需要改变控件的外观和行为就用controlTemplate(形状、事件触发如鼠标停留效果等)。在实际项目中,经常把Template定义在Style中,通过Style 中的Property来设置控件的Template属性。WPF中的所有COntrol控件都有Templ
阅读全文
摘要:在实际的编程工作中,我们可以只是用事件,不用命令,程序的逻辑也一样被驱动的很好,但我们不能阻止程序员按照自己的习惯去写代码。比如保存事件的处理器,程序员们可以写Save()、Savehandler()、SaveDocument()...这些都符合代码规范,但是迟早有一天整个项目会变得无法读懂,新来的程序员或者修改bug的程序员会很抓狂。WPF命令简介 WPF的命令是实现了ICommand接口的类。ICommand接口非常简单,只包含两个方法和一个事件。Execute方法:命令执行,或者说命令作用于目标之上。CanExecute方法:在执行之前来弹指命令是否可被执行。CanExecuteCh..
阅读全文
摘要:WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件。1.WPF内置路由事件 WPF中的大多数事件都是路由事件,WPF有3中路由策略:具体不多讲,单需要注意的是WPF路由事件是沿着VIsualTree传递的。VisualTree与LogicalTree的区别在于:LogicalTree的叶子节点是构成用户界面的控件,而VisualTree要连控件中的细微结构也算上。VisualTree是LogicalTree的扩展。下面给出一个使用WPF内置路由事件的例子: ...
阅读全文
摘要:原博客地址:http://www.cnblogs.com/DebugLZQ/archive/2012/11/30/2796021.htmlDependencyObject和DependencyPorperty两个类是WPF属性系统的核心。在WPF中,依赖对象的概念被DependencyObject类实现;依赖属性的概念则由DependencyPorperty类实现。必须使用依赖对象作为依赖属性的宿主,二者结合起来,才能实现完整的Binding目标被数据所驱动。DependencyObject具有GetValue和SetValue两个方法,用来获取/设置依赖属性的值。DependencyObje
阅读全文
摘要:http://www.cnblogs.com/Zhouyongh/archive/2009/09/10/1564099.html
阅读全文
摘要:引发事件的代码,通常可以封装成“On+事件名称”的方法(On:表示当“什么什么”的时候),如下所示:1:引发事件代码:if (PropertyChanged != null)//为了实现将数据源的改变通知给目标控件 { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); }2:可以封装如下的方法(当“属性改变”的时候):private void OnPropertyChanged(string propertyName){ if (PropertyChanged != null)//为了实现将数据源的改变通知给目
阅读全文
摘要:ManualResetEvent mre= new ManualResetEvent(false);(ManualResetEvent : EventWaitHandle : WaitHandle)mre.WaitOne:阻止当前线程,直到当前 System.Threading.WaitHandle(即ManualResetEvent)收到信号;如果当前实例(WaitHandle或ManualResetEvent)收到信号,则为 true。如果当前实例永远收不到信号,则 System.Threading.WaitHandle.WaitOne(System.Int32,System.Boolea
阅读全文
摘要:下面是“银光中国”(不错的WPF或SL网站)WPF学习教程中的一个连接,http://www.silverlightchina.net/html/study/WPF/2011/0715/9034.html
阅读全文
摘要:MVVM模式的3种command总结[2]--RelayCommandRelayCommand本来是WPF下面用的一种自定义的command,主要是它用到了事件管理函数,这个SL下面是没有的。不过这部分代码如果修改一下,也可以在SL下面使用,和WPF下面的实现思路差不多。先看下RelayCommand的定义,一共有2种。 1 public class RelayCommand : ICommand 2 { 3 public RelayCommand(Action execute) 4 : this(execute, null) 5 ...
阅读全文
摘要:MVVM模式的3种command总结[1]--DelegateCommand查了不少资料,大概理清楚的就是有3种。当然类名可以自己取了,不过为了便于记忆和区分,还是和看到的文章里面用一样的类名。1.DelegateCommand2.RelayCommand3.AttachbehaviorCommand因为MVVM模式适合于WPF和SL,所以这3种模式中也有一些小差异,比如RelayCommand下面的CommandManager方法就是WPF下面的,SL下面无法使用,不过我认为这3种方法中的基本思路都如出一辙,都是出自那位外国牛人的文章里面。主要的区别在于和VIEW中的控件的绑定使用上。有点不
阅读全文
摘要:触发器有三种:1:属性触发器(即普通触发器);2:数据触发器;3:事件触发器(动画)Style的触发器,通常“属性或事件”不需要使用限定词:控件自身的触发器,通常“属性或事件”需要使用限定词(有时,也可不使用,不知为什么???):
阅读全文