WPF
文章平均质量分 82
三五月儿
修行者 服务端开发(java/.net)
展开
-
WPF中使窗体关闭按钮与自定义的退出按钮行为一致的做法
在开发中,我们经常需要窗体的关闭按钮(右上角的叉叉)与我们的自定义退出按钮具有相同的执行行为。这时我们可以按照本文所说的方法来实现。 问题描述:建立WPF窗体应用程序,运行程序后,界面如下所示。 在界面上修改示例数据,当示例数据发生变更(不再为“0”时即发生变更)时,点击“退出”按钮 ,必须弹出“是否保存”的提示框(如下图所示)。 点击“是”,保存并退出。点击“否”原创 2013-10-20 20:01:51 · 17578 阅读 · 1 评论 -
WPF资源
一 概要本文通过实例演示WPF资源的使用,并在演示过程中对WPF资源相关知识点进行解释说明。 二 实例操作1新建WPF应用程序WpfResourcesExp,程序结构如下图所示。 图1 WpfResourcesExp程序结构图其中:Resources.resx为“程序集资源”文件,保存嵌入到程序集本身中的各种资源文件,可以保存的文件类型有:字符串,图像,图标,文本文原创 2014-08-17 18:28:09 · 2558 阅读 · 0 评论 -
WPF自定义路由事件
一 概要本文通过实例演示WPF自定义路由事件的使用,进而探讨了路由事件与普通的CLR事件的区别(注:“普通的CLR事件”这个说法可能不太专业,但是,我暂时也找不到什么更好的称呼,就这么着吧,呵呵。)(扩展阅读:例说.NET事件的使用)。 二 实例演示与说明1 新建DetailReportEventArgs类,该类派生自RoutedEventArgs类,RoutedEventArgs原创 2014-09-01 21:50:27 · 10698 阅读 · 2 评论 -
使用System.Windows.Forms.Application.DoEvents实时更新画面
在开发中,有些时候需要在事件处理器中进行大量的循环操作且需要实时地显示某个中间结果,这时候就需要使用到System.Windows.Forms.Application.DoEvents方法。下面给出一个实例来模拟System.Windows.Forms.Application.DoEvents方法的使用场景。下面是程序的主画面,点击画面中的“Start Countdown”按钮开始倒计时。原创 2015-10-04 18:23:58 · 9899 阅读 · 6 评论 -
WPF制作带圆角的文本框的两种方法
方法一 方法二 效果图原创 2015-10-08 15:18:24 · 15859 阅读 · 2 评论 -
BackgroundWorker应用实例
本文通过实例介绍BackgroundWorker组件的使用方法。使用BackgroundWorker前需要添加命名空间System.ComponentModel。本实例模拟一个耗时操作,并在操作过程中报告工作进度。这种情况使用BackgroundWorker非常合适。下面是实例程序的主画面。 下面给出程序的完整代码。using System.ComponentModel;using原创 2015-10-08 17:34:12 · 2474 阅读 · 1 评论 -
实例对比WPF中的Timer和DispatcherTimer
本文使用Timer和DispatcherTimer制作电子时钟,通过实例对比来了解两者的本质区别。 下面是实例最终的运行画面。其中时钟1使用Timer实现,时钟2使用DispatcherTimer实现。 下面给出完整的实例代码(省略画面代码)。using System;using System.Windows;namespace DispatcherTimereExp{ ///原创 2016-05-08 16:35:12 · 17564 阅读 · 2 评论 -
ListView分页操作
为了完成ListView分页操作,本文会封装一个负责“分页操作”的泛型类PageInfo,该泛型类不仅适用于WPF中ListView的分页,还适用于WPF及WinForms中其他需要分页操作的控件。 下面是PageInfo类的完整代码(包含枚举JumpOperation的定义)。public class PageInfo<T> { public List<T> dataSo原创 2016-04-23 21:09:59 · 3897 阅读 · 0 评论 -
子线程更新UI画面的方法
文章一开始,会给出三个版本的代码,其中有一个版本的代码在执行时是会产生异常的。那么,大家能一眼看出是哪个版本的代码吗?版本一: Action ac = () => { this.Label_Note.Content = "麻辣隔壁"; }; this.Dispatcher.BeginInvo原创 2016-04-01 17:36:35 · 2668 阅读 · 0 评论 -
WPF获取程序路径的一些方法
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。System.IO.Directory.GetCurrentDirectory() 获 取应用程序的当转载 2017-01-03 17:54:06 · 6170 阅读 · 0 评论 -
WPF之TreeView操作实战
1、绑定层级数据源 绘制名称为TreeView_NodeList的TreeView控件,使用HierarchicalDataTemplate类将具有层级结构的数据源绑定至TreeView控件。<TreeView Name="TreeView_NodeList"> <TreeView.Resources> <HierarchicalDataTe原创 2017-01-06 13:13:13 · 26595 阅读 · 12 评论 -
WPF中使用VisualBrush的实例
本文实现一个名为“你来我往”的小程序,该程序管理着“张三”和“李四”两位童鞋拥有的现金,一开始,两人均拥有100美元的现金,随着将现金从其中一人转移至另外一人,两人拥有的现金数在不断变化,程序可以跟踪这种变化,并正确显示每人拥有的现金数。每次最多可以转移三张纸币,纸币的金额可以是5美元、10美元或者20美元。程序运行后的效果如图1所示,我们点击“张三”右边的“5美元”“10美元”“20美元”按原创 2014-08-26 21:32:03 · 9697 阅读 · 3 评论 -
使用列号访问DataGrid中的列引起的问题
问题描述WPF应用程序中,使用DataGrid来显示员工信息,包含公司名称,姓名,年龄,电话四列。而在某些情况下,电话列需要被隐藏,所以在画面的后端代码中使用下面的代码来控制电话列的显示情况。if (isShowTelephone){ this.DataGrid_People.Columns[3].Visibility = Visibility.Visible;}else{原创 2014-09-08 21:08:53 · 1344 阅读 · 0 评论 -
WPF布局
本文通过5个实例来演示WPF中5个常用布局控件Grid、StackPanel、DockPanel、Canvas、WrapPanel的使用方法。 实例1 使用Grid进行布局使用Grid将画面分割成5行5列,并在1行1列、3行2列、3行3列及5行1列四个位置上放置4个背景色不同的TextBox控件,且5行1列的TextBox控件横跨4列。下面给出画面的设计图及详细代码。 图1 使原创 2014-08-24 15:53:19 · 4997 阅读 · 0 评论 -
Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
前段时间,公司同事开发了一个小工具,在工具执行过程中,UI界面一直处于卡死状态。通过阅读代码发现,主要是由于Dispatcher.BeginInvoke()方法使用不当导致的。本文将通过一个WPF模拟程序来演示一下界面卡死的现象,并通过修改代码来解决界面卡死的问题。希望通过对本文的学习,大家能对Dispatcher.BeginInvoke()方法有一个新的认识。文章开篇直接给出原创 2013-09-15 18:06:59 · 51302 阅读 · 8 评论 -
一个简单的WPF MVVM实例
1 新建WPF 应用程序WPFMVVMExample程序结构如下图所示。 2 Model实现在Model文件夹下新建业务类StudentModel(类文件StudentModel.cs),类的详细代码如下所示。using System.ComponentModel; namespace WPFMVVMExample.Model{ public class S原创 2014-03-09 12:09:22 · 32709 阅读 · 8 评论 -
Prism MVVM实例
在《一个简单的WPF MVVM实例》一文中,我们手动实现了一个WPF MVVM实例程序,其实我们可以直接使用微软的Prism 来实现MVVM。 1 新建WPF 应用程序PrismMvvmExample程序结构如下图所示。 2 添加Microsoft.Practices.Prism引用下载Prism4(官方下载地址:http://compositewpf.codeple原创 2014-03-09 17:26:24 · 10425 阅读 · 3 评论 -
使用ValidationRule类来检查用户输入的有效性
1 新建WPF应用程序ValidationRuleExp整个程序的结构如下图所示。 程序运行起来后的效果如下图所示。 用户操作程序时,先输入固话、手机、Email、个人网站等信息,再点击右侧的“点我记住你”按钮,便可以保存用户输入的信息。 2 新建业务实体类ContactModel(类文件为ContactModel.cs)ContactModel类包含固话、手机原创 2014-07-18 10:47:22 · 12984 阅读 · 3 评论 -
WPF值转换器
一 摘要本文通过实例演示WPF值转换器的应用,并在演示过程中,对WPF值转换器的相关知识点进行解释说明。 二 实例演示1 新建WPF应用程序ConverterExp,程序结构如下图所示。 图1 程序结构图程序的主画面如下图所示。 图2 程序主画面程序完成功能:通过画面中的ComboBox控件改变TextBlock控件的Background值。ComboBox原创 2014-08-04 21:43:10 · 7380 阅读 · 1 评论 -
WPF之DataTemplate的使用
一 概要通过实例演示DataTemplate的基本用法,并通过实例来说明DataTemplate相关知识点。 二 实例操作1 新建WPF应用程序WpfTemplateExp,程序结构如下图所示。 图1 程序结构图 程序最终的运行效果如下图所示。 图2 程序运行效果图 程序完成的功能是:通过列表显示学生信息,并在选中某学生时,在列表下方的文本框中显原创 2014-08-21 20:27:52 · 29746 阅读 · 1 评论 -
[总结]使用WPF路由事件过程中遇到的一些小问题
写在前面本文一开始会给出一个使用WPF路由事件的实例,因为本文所有的表述都将基于该实例。而本文所给实例来自于《WPF自定义路由事件》一文,在《WPF自定义路由事件》一文中会对实例代码做详细说明,所以,大家在阅读本文实例代码期间若存在疑问,可以先去看看《WPF自定义路由事件》一文,看是否能从中获得你想要的解答。本文实例1 新建DetailReportEventArgs类,该类派生原创 2014-09-06 10:01:42 · 3390 阅读 · 2 评论 -
WPF绑定入门
一 概述文章一开始,将给出一个使用WPF绑定的小实例。并以此为起点,逐步展开对WPF绑定知识的探讨。 二 实例演示1新建WPF应用程序WpfBindingExp,下面是程序主画面的代码。<Window x:Class="WpfBindingExp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/20原创 2014-09-07 22:05:05 · 4588 阅读 · 0 评论 -
WPF名称空间
一 C#名称空间C#中,将类组织在合适的名称空间中,这样便可以在不同的名称空间中创建同名的类,而在使用同名类时,需要指定类是属于哪一个名称空间,以此来区别不同的同名类。这就像,1班有一个“张伟”,2班也有一个“张伟”,为了区分这两个同名的“张伟”,必须加上“1班的”或者“2班的”限定条件一样,名称空间就是此处用来区别同名“张伟”的限定条件,它的作用就是避免同名的冲突。下面通过一个简单的实验原创 2014-08-09 18:03:06 · 2574 阅读 · 0 评论 -
WPF中呈现变形与布局变形的区别
引例文章一开始,先给出下图所示的画面布局。 图1 画面布局设计图画面被分割成4行4列16个单元格,在1行2列的位置放置一个TextBlock控件并将其背景色设置为淡蓝色。 对应的XAML代码为:<Window x:Class="WpfTransformExp.MainWindow" xmlns="http://schemas.microsoft.com/wi原创 2014-09-08 16:08:38 · 2672 阅读 · 0 评论 -
C#各种结束进程的方法详细介绍
1、Process类的CloseMainWindow, Kill, Close (1)Process类的CloseMainWindow方法 Process.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用户点击窗体的关闭按钮或者按Alt + F4。它的本质就是向主窗体发送WM_CLOSE消息(Process.MainWindowsHan转载 2017-01-07 18:04:49 · 16542 阅读 · 0 评论