随笔分类 - WPF
摘要:1 背景 在WPF开发过程中我们经常在进行绑定的过程中不可避免的使用四则运算,例如: x*30 + y/2,如果为每一种运算都单独写一个转换器那么代码中由于不同的需求便会有大量的转换器最终的效果就是代码中大量重复并且十分臃肿,我们知道在WPF中我们经常会用到MultiBinding来绑定多个变量并对
阅读全文
摘要:背景 在很多时候我们需要用到WPF中的自定义控件,即我们想将一整套不同的控件组合成一个独立的控件并且定义在一个独立的自定义控件库中,这样整个控件就能够得到更好的封装和更好的独立性并且在定义的时候有更大的灵活性,在这篇文章中我已ItemsControl作为主体通过扩展其ItemsPanel和ItemC
阅读全文
摘要:背景 很多时候我们在做WPF应用开发的时候不可避免地要进行各种UI的切换,如果这个时候如果在UI线程中加入过多的代码逻辑就有可能造成界面的卡顿,如果是在调试模式下卡顿一会儿以后就会弹出ContextSwitchDeadlock的异常,就像下面的截图描述的那样,这个时候我们往往不知道问题到底出在了哪里
阅读全文
摘要:背景 在我们进行WPF开发应用程序的时候不可避免的要使用到事件,很多时候没有严格按照MVVM模式进行开发的时候习惯直接在xaml中定义事件,然后再在对应的.cs文件中直接写事件的处理过程,这种处理方式写起来非常简单而且不用过多地处理考虑代码之间是否符合规范,但是我们在写代码的时候如果完全按照WPF规
阅读全文
摘要:背景 在很多的时候我们需要编辑DataGrid中每一个Cell,编辑后保存数据,原生的WPF中的DataGrid并没有提供这样的功能,今天通过一个具体的例子来实现这一个功能,在这个例子中DataGrid中的数据类型可能是多种多样的,有枚举、浮点类型、布尔类型、DateTime类型,每一种不同的类型需
阅读全文
摘要:在介绍这一篇文章之前,我们首先来回顾一下WPF中的一些基础的概念,首先当然是XAML了,XAML全称是Extensible Application Markup Language (可扩展应用程序标记语言),是专门用于WPF技术中的UI设计语言,通过使用XAML语言,我们能够快速设计软件界面,同时能
阅读全文
摘要:WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就这个部分来做一次系统性的总结。 App.Config文件是系统默认的应用程序配置文件,在我们使用后进
阅读全文
摘要:今天我来写一篇关于利用WPF来实现Windows的资源管理器功能,当然只是局部实现这个功能,因为在很多时候我们需要来实现对本机资源的管理,当然我们可以使用OpenFileDialog dialog = new OpenFileDialog()这个Microsoft.Win32命名空间下的这个类来实现
阅读全文
摘要:在我们设计一个软件的时候,有很多时候我们需要按照美工的设计来重新设计整个版面,这当然包括主窗体,因为WPF为我们提供了强大的模板的特性,这就为我们自定义各种空间提供了可能性,这篇博客主要用来介绍如何自定义自己的Window,在介绍整个写作思路之前,我们来看看最终的效果。 图一 自定义窗体主界面 这里
阅读全文
摘要:今天结合之前做过的一些拖拽的例子来对这个方面进行一些总结,这里主要用两个例子来说明在WPF中如何使用拖拽进行操作,元素拖拽是一个常见的操作,第一个拖拽的例子是将ListBox中的子元素拖拽到ListView的某一个节点,从而将该子元素作为当前节点的子节点。第二个例子就是将ListView的某一项拖拽
阅读全文
摘要:在我们使用TextBlock进行数据显示时,经常会遇到这样一种情况就是TextBlock的文字内容太多,如果全部显示的话会占据大量的界面,这是我们就会只让其显示一部分,另外的一部分就让其随着时间的推移去滚动进行显示,但是WPF默认提供的TextBlock是不具备这种功能的,那么怎么去实现呢? 其实个
阅读全文
摘要:今天按照这一年来经常用到的那些静态的工具类再来做一次总结,这些小的工具来可以作为自己学习的很好的例子,通过总结这些东西,能够很大程度上梳理自己的知识体系,当然这个是经常用到的,接下来就一个个去分析这些类的作用和蕴含的知识点。 ControlUtil 这个工具类是非常重要的,它的主要作用就是通过视觉树
阅读全文
摘要:前面一片文章实现TreeView的基本的模板重写,那么照着这个思路,我们再来写一个稍稍复杂的TreeView ,其它的内容都和前面系列内容相似,还是和之前文章介绍的一样,首先看看做出的DEMO的最终样式,先来一睹为快。 其实并不复杂,关键的是要准确去理解TreeView这个控件,这个控件的核心是Tr
阅读全文
摘要:总想花些时间来好好总结一下TreeView这个WPF控件,今天来通过下面的这几个例子来好好总结一下这个控件,首先来看看一个常规的带虚线的TreeView控件吧,在介绍具体如何完成之前首先来看看最终实现的效果图吧! 然后我们来具体分析一下这个是怎样去实现的? 1 修改TreeView的模板层 其实Tr
阅读全文
摘要:今天在做一个demo,向自定义图层中添加MarkerSymbol的时候,弹出“图形符号无法序列化为 JSON”错误,之前都没有出现过这个问题,我们首先来看一看我是怎样去添加图层,然后向图层中添加Graphic的,这个比较简单,直接贴出相关代码。 再看看我们前台定义的这个资源。 这段代码结构也非常清楚
阅读全文
摘要:首先来看看Path的定义,参考MSDN:绘制一系列相互连接的直线和曲线。介绍比较简单,我们再来看看备注中有些什么,Path 对象可以绘制封闭式还是开放式形状、 多个形状和甚至曲线的形状。与不 Line 和 Polyline 对象,可以使用此对象来绘制曲线。 请参阅 Data 属性有关的形状的说明,
阅读全文
摘要:在我们的常见的软件界面设计中我们经常会设置软件的背景为SolidColorBrush或者LinerColorBrush、RadialGradientBrush 等一系列的颜色画刷为背景,有时我们也会使用ImageBrush添加图片来作为界面的背景,另外常用的还有DrawingBrush以及今天需要进
阅读全文
摘要:背景 今天我们来谈一下我们自定义的一组WPF控件Form和FormItem,然后看一下如何自定义一组完整地组合WPF控件,在我们很多界面显示的时候我们需要同时显示文本、图片并且我们需要将这些按照特定的顺序整齐的排列在一起,这样的操作当然通过定义Grid和StackPanel然后组合在一起当然也是可以
阅读全文
摘要:Popup控件是一个常用的非常有用的控件,顾明思义就是弹出式控件,首先我们来看看MSDN对它的解释吧,表示具有内容的弹出窗口,这个是非常重要的控件,我们看看它的继承关系吧: System.Object System.Windows.Threading.DispatcherObject System.
阅读全文
摘要:在WPF中ScrollViewer是一个非常重要的控件,它可以实现当界面超过视图范围时候通过拖动ScrollBar来显示其它部分, 这里介绍一个带动画效果的ScrollViewer和ScrollBar,它可以实现自动隐藏控件,当鼠标移动到上面的时候通过动画来显示当前的ScrollBar,在看这个具体
阅读全文