随笔分类 -  WPF

摘要:WPF日历控件的一个样式 WPF自带的日历控件样式可能会比较丑,要修改其样式看起来挺复杂的,实际上很简单,用Blend打开,修改三个模板,基本就能改变全部面貌,也很容易 先上图 样式如下: <Setter Property="FontFamily" Value="pack://application 阅读全文
posted @ 2017-08-10 19:42 UncleNull 阅读(2780) 评论(0) 推荐(1)
摘要:在上一次的文章 "WPF OnApplyTemplate 不执行 或者执行滞后的疑惑" 谈到怎么正确的开发自定义控件,我们控件的样式中,属性的绑定一般都是用 来完成,如下一个基本的按钮样式: <Setter Property="FocusVisualStyle" Value="{DynamicRes 阅读全文
posted @ 2017-04-21 18:15 UncleNull 阅读(11712) 评论(1) 推荐(9)
摘要:OnApplyTemplate 不执行 平时如何开发自定义控件的 在WPF自定义控件开发的过程中遇到了这样一个问题,属性更改事件在OnApplyTemplate之前执行。我在写自定义控件的时候,喜欢通过OnApplyTempalte重写方法获取到Style中的所有控件,进而在属性更改通知时修改这些控 阅读全文
posted @ 2017-04-13 16:07 UncleNull 阅读(3635) 评论(0) 推荐(2)
摘要:WPF自定义分页控件 做了许久伸手党,终于有机会贡献一波,搜索一下WPF分页控件,还是多,但是不太通用,主要就是样式问题,这个WPF很好解决,还有一个就是分页控件嘛,只关心几个数字的变动就行了,把页码改变事件暴露出来,数据的加载在这里就做就行,所以这个分页控件很简单... 好像也没啥讲的,直接上代码 阅读全文
posted @ 2017-03-23 23:28 UncleNull 阅读(3560) 评论(2) 推荐(1)
摘要:WPF,Slider,RangeSlider,MultiRangeSlider 阅读全文
posted @ 2016-12-24 10:33 UncleNull 阅读(2320) 评论(1) 推荐(1)
摘要:WPF MVVM(Caliburn.Micro) 数据验证 "书接前文" 前文中仅是WPF验证中的一种,我们暂且称之为View端的验证(因为其验证规是写在Xaml文件中的)。 还有一种我们称之为Model端验证,Model通过继承IDataErrorInfo接口来实现,这个还没研究透,后面补上。 " 阅读全文
posted @ 2016-04-27 12:00 UncleNull 阅读(3617) 评论(0) 推荐(0)
摘要:## EventToCommand在WPF中,并不是所有控件都有Command,例如TextBox,那么当文本改变,我们需要处理一些逻辑,这些逻辑在ViewModel中,没有Command如何绑定呢?这个时候我们就用到EventToCommand,事件转命令,可以将一些事件例如TextChanged... 阅读全文
posted @ 2015-08-22 13:20 UncleNull 阅读(4677) 评论(1) 推荐(0)
摘要:## DispatcherHelper通常,WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI。呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入、处理事件、绘制屏幕以及运行应用程序代码。所以我们的大多数操作都会在UI线程中执行,同时它也处理绘制屏幕,如果我们的一个操作相当耗时... 阅读全文
posted @ 2015-08-22 13:20 UncleNull 阅读(5013) 评论(0) 推荐(4)
摘要:## ViewModelLocator这里先鼓舞下士气,ViewModelLocator很简单,甚至可以去掉,它不是Mvvm必须的。在初学Mvvm时,一般都是使用NuGet安装MvvmLight框架,总是会带上那么一个ViewModelLocator,并且还加入到了全局资源中,到底是干吗的? ... 阅读全文
posted @ 2015-08-22 13:19 UncleNull 阅读(5640) 评论(0) 推荐(4)
摘要:## MessengerMvvm提倡View和ViewModel的分离,View只负责数据的显示,业务逻辑都尽可能放到ViewModel中,保持View.xaml.cs中的简洁(没有任何代码,除了构造函数),但是某些场景下也不必一定要保持View.xaml.cs中的简洁,例如动画。我们想要让界面酷炫... 阅读全文
posted @ 2015-08-22 13:19 UncleNull 阅读(2328) 评论(1) 推荐(2)
摘要:### Mvvm简介当我们在开发WPF,SilverLight,WP程序时,会使用Mvvm这一架构模式。它是一个很笼统的架构模式概念。在.Net下,我所知道的Mvvm框架有* [MvvmLight](http://www.mvvmlight.net/)* [Caliiburn.Micro](http... 阅读全文
posted @ 2015-08-22 13:19 UncleNull 阅读(3561) 评论(1) 推荐(4)
摘要:## ViewModelBase && ObservableObject在Mvvm中,ViewModel和Model都需要具有通知界面更新数据的能力,这都要借助于WPF中的*INotifyPropertyChanged* 接口,每一个ViewModel和Model都要去实现接口就太麻烦,于是作为Mv... 阅读全文
posted @ 2015-08-22 13:18 UncleNull 阅读(5945) 评论(0) 推荐(2)
摘要:## RelayCommandMvvm最大的特点就是分离了View和ViewModel,将数据的显示和业务逻辑分开。使用WPF的Binding,我们不仅能够将数据从ViewModel绑定到View,同时也可以将行为绑定到View。例如,在主界面上点击一个按钮,这个按钮实际完成的操作是ViewMode... 阅读全文
posted @ 2015-08-22 13:18 UncleNull 阅读(5934) 评论(0) 推荐(2)
摘要:![MvvmLightToolKit](http://www.galasoft.ch/layout/mvvm/MVVM_BlackText_190x147.png)### [MvvmLightToolKit](http://www.mvvmlight.net/)MvvmLightToolKit的[源... 阅读全文
posted @ 2015-08-22 13:17 UncleNull 阅读(8405) 评论(1) 推荐(5)
摘要:### 数据验证WPF的Binding使得数据能够在数据源和目标之间流通,在数据流通的中间,便能够对数据做一些处理。`数据转换`和`数据验证`便是在数据从源到目标 or 从目标到源 的时候对数据的验证和转换。![Binding](http://files.cnblogs.com/files/Hell... 阅读全文
posted @ 2015-07-11 14:00 UncleNull 阅读(2632) 评论(0) 推荐(2)
摘要:一 问题重现 1.在使用最新版本v5.1的MvvmLight中(其实这个问题很早就有了),发现CanExecute不能很好地工作了。一个简单的工程,只有MainWindow和MainWindowViewModel,代码如下MainWindow.xaml ... 阅读全文
posted @ 2015-06-16 20:49 UncleNull 阅读(2347) 评论(6) 推荐(6)
摘要:例子 先来看一个例子 Person.cs MainWindow.xaml.cs 注意注释的地方 结果是TestName属性可以正确更新到UI上,而集合属性Names却不行(这里确实没有搞懂,求教之)。 其余的理解,有一篇写得很好 http://www.cnblogs.com/wpcockroach/ 阅读全文
posted @ 2015-02-12 14:31 UncleNull 阅读(2339) 评论(2) 推荐(1)
摘要:1.见鬼了? 项目中遇到这样的要求,一个Button用一个Adorner装饰,这个Adorner上又有一个Button,如下面这样 此时,我们在点击小Button的时候只希望处理小Button的事件,可是这时候,居然大Button的事件也触发了。按道理上讲,Adorner和Button不在可视化树的 阅读全文
posted @ 2014-12-08 15:41 UncleNull 阅读(3619) 评论(4) 推荐(2)
摘要:一.基础知识 1.System.Printing命名空间 我们可以先看一下System.Printing命名空间,东西其实很多,功能也非常强大,可以说能够控制打印的每一个细节,曾经对PrintDialog失望的我看到了一丝曙光。 2.PrintDialog 可以看到PrintDialog除了构造函数 阅读全文
posted @ 2014-12-07 22:03 UncleNull 阅读(23262) 评论(10) 推荐(13)
摘要:正在做一个打印机列表,从中选择一个打印机(System.Printing) var printServer = new LocalPrintServer(); PrintQueues = printServer.GetPrintQueues(); ... 阅读全文
posted @ 2014-11-12 15:57 UncleNull 阅读(5111) 评论(5) 推荐(5)