WPF
文章平均质量分 89
杨友山
多年软件开发管理经验,曾在腾讯、中兴通讯等企业从事软件开发和管理工作,熟悉技术和开发管理;曾在微软从事售前技术支持,接触过产品销售。目前在从事低代码平台类产品研发相关工作。 擅长.NET领域,前端angular,vue,typescript,Oracle,云计算相关。
展开
-
WPF -001 数据绑定
WPF中界面全部都用XAML显示相应的控件,确切来说,WPF是想让WINFORM界面的开发像网页开发一样。在Winform中只要控件名.属性=设置的属性值,那么在WPF中不用再这么麻烦了。这里就说说数据绑定的用法吧。界面上有很多要显示后台数据的控件,后台数据改变了,那么如何让界面数据也实时发生改变呢?这就用到绑定。使用数据绑定有这么几个步骤:第一步,有一个实现了INotifyPropert原创 2012-08-09 12:41:44 · 3185 阅读 · 0 评论 -
WPF-16:IValueConverter简单用法
IValueConverter值转换器,可以将一种类型转换为另一种类型,比如将值类型转为字符串,将图片url转换为图片类型,也可以将一个值进行计算转换为新值等等。在WPF,一般在绑定的场合用的是比较多的。下面通过一个简单的例子看看IValueConverter的用法。首先,我们看IValueConverter有两个方法:public object Convert(object value,原创 2013-05-20 18:06:06 · 8935 阅读 · 0 评论 -
WPF-17行为(以控件在界面拖动为例)
行为并不是WPF中的核心的部分,是Expression Blend的设计特性。使用行为的地方,也是可以使用触发器取代的。不过行为使用起来也是有趣的,下面以一个简单的例子看看它的用法。重写OnAttached()和OnDetaching()方法。通过AssociatedObject访问放置行为的元素。在事件中完成鼠标拖动控件的一些操作。如下: public class MyBehavior原创 2013-05-21 17:54:37 · 6886 阅读 · 0 评论 -
WPF-18:输入验证的详细用法
当用到输入框时,验证肯定就要用到。一般这样可以在后台写方法,然后将错误信息显示到某个控件上。当然比如做一些不能为空,不能是某种字符的一般性验证时还是用自带的验证类会比较方便一些。下面就看看ValidationRule在做常规验证时的用法。用法很简单就是定义一个类继承ValidationRule,然后实现Validate即可。如下: public class IsNullValidateRul原创 2013-05-30 12:21:47 · 7615 阅读 · 1 评论 -
WPF-21:WPF实现仿安卓的图案密码键盘(初级)
想用C#做一个和手机上一样的图形密码键盘,貌似这方面资料比较少,虽然winphone手机上也有但是网上也没有这方面的代码。只好用常规的思维去实现一下,当然是比较简单的,希望各路高手能给一些好的建议,这篇文章算是抛砖引玉吧,用WPF实现。思路如下:使用常用控件从最简单的图案绘制,然后放在相应的控件上,利用鼠标的Move事件,判断鼠标滑过哪些控件,然后将控件上的对应密码的数字收集,最终形成密码。具体实原创 2013-07-09 12:35:34 · 3959 阅读 · 0 评论 -
WPF-21:WPF实现仿安卓的图案密码键盘(改进)
前面写了个简单的实现,不过效果不太好,各个点之间没有连接起来。这里增加连接各个按键。其他代码不变,只改动PatternPasswordKeyboard类。 /// /// PatternPasswordKeyboard.xaml 的交互逻辑 /// public partial class PatternPasswordKeyboard : UserControl原创 2013-07-09 17:56:14 · 2748 阅读 · 0 评论 -
WPF-19:分享一个样式(左右滑动选中的checbox)
首先看下效果。选中:不选中样式:原创 2013-06-25 16:34:40 · 2879 阅读 · 1 评论 -
WPF-22:WPF实现五角星绘制及评级控件
类似淘宝的评级控件在程序业务中使用比较多,尤其是对于电子商务方面的编程。最近做了这样的一个小功能,使用WPF实现。但是对于五角星的绘制部分的代码(包括计算五个点),可以应用于Winform,ASP.NET等。下面来看代码的实现。该项目名称:TestFivePointStarLikeTaobao。这个项目如下图,1、五角星的绘制。绘制五角星,主要是要根据半径获得五个点。 /// /原创 2013-07-11 17:53:12 · 4306 阅读 · 2 评论 -
WPF-22:WPF绘制五角星改进版(增加半个五角星的绘制)
初步实现了一个绘制五角星的控件(http://blog.csdn.net/yysyangyangyangshan/article/details/9303005),但是在实际中有一种情况显示半颗五角星的。下面做一下改进,完善一下这个五角星控件。功成名:TestFivePointStarLikeTaobao,项目如图,1、两种五角星的绘制方法这两种计算坐标的方法比较重要。五点画法,也是常用画法。原创 2013-07-12 17:13:45 · 4628 阅读 · 0 评论 -
WPF-22:WPF绘制五角星改进版(增加半个五角星的绘制)-修改bug
之前用坐标画多边形的方法,绘制五角星。今天调试时发现当时写的时候有bug,修改一下。原文:http://blog.csdn.net/yysyangyangyangshan/article/details/9313421,当时没测试绑定的问题,一测试发现绑定有问题。原来是多颗五角星控件中,依赖属性的typeof写错了类。SelectCount和ItemsCount的typeof(FivePointS原创 2013-07-19 12:26:57 · 2380 阅读 · 0 评论 -
WPF-23:水印文本框
WPF中水印输入框应该是有很多地方使用,它的实现也比较简单。可以有两种方法,一是对TextBox进行控制,用代码实现。二是针对TextBox写一个样式实现。先看第一种:继承一个用户控件,上面放一个textbox,<UserControl x:Class="TestTextBoxWaterMark.SelfWateMarkTextbox" xmlns="http://sch原创 2013-07-22 20:21:43 · 7292 阅读 · 1 评论 -
WPF-15:AutoCompleteBox的使用(实现下拉列表)
下拉列表之前用这种popup控件实现(http://blog.csdn.net/yysyangyangyangshan/article/details/8177878),使用起来也比较不方便。好在wpf中还有一个控件AutoCompleteBox可以来实现。不过使用之前需要引用System.Windows.Controls.Input.Toolkit.dll(最好安装WPF Toolkit,这原创 2013-04-26 18:49:36 · 7583 阅读 · 0 评论 -
WPF-12:遍历当前程序所有窗口
实现很简单foreach (Window window in Application.Current.Windows)就可以了。原创 2013-03-27 18:50:39 · 2351 阅读 · 0 评论 -
WPF-14:绑定中数据模型必须为public问题
不久前遇到一个问题,在绑定的时候打算将数据模型类全部设置为internal类型,进行模块的封装。不过当设置为internal之后绑定居然不起作用了。代码如下:数据模型部分:public abstract class NotifyBind : INotifyPropertyChanged { public event PropertyChangedEventHandl原创 2013-04-09 16:08:45 · 1748 阅读 · 0 评论 -
WPF-004 控件 ToolTip
WPF中的工具提示(鼠标放在某个控件上弹出的那个东东)用法很简单。1、复杂的工具提示不光有文字还有图片什么的,只需要使用ToolTip属性,给该属性中加控件就可以了。如下, <ToolTip Background="#60AA4030" Foreground="White" HasDropShadow=原创 2013-01-21 14:51:18 · 2621 阅读 · 0 评论 -
WPF-002 下拉列表的简单实现
最近在一个WPF项目中用到一个下拉列表,随着用户输入字符而进行显示,使用了绑定等知识,虽然实现比较简单,可是在性能上也是想了很多办法终于才勉强可以用,与大家分享下。用于页面绑定的模型类:public class MainWindowModel : INotifyPropertyChanged { public event PropertyChangedEvent原创 2012-11-13 11:38:14 · 15819 阅读 · 0 评论 -
WPF-003 popup实现下拉列表的问题
最近在做项目的时候由于需要用到下拉列表,于是就用popup实现了(http://blog.csdn.net/yysyangyangyangshan/article/details/8177878),在调试中也没有发现什么问题。不过当给用户使用时就出现了问题,选中选项后有残影,影响了界面显示。解决问题时,一直认为是界面重绘,刷新的问题。于是还使用了刷新,调用DoEvents()。原创 2012-11-17 11:45:02 · 3174 阅读 · 0 评论 -
WPF-005:关于使用PageFunction导航中KeepAlive的使用
关于Page导航可以直接使用this.NavigationService.Navigate(新页面对象,参数(可不填)),但是为了更好的处理返回。最好使用继承了PageFunction的Page进行导航,在Return事件里进行处理某个页面的返回。不过此时需要注意:1、默认构造函数和带参数的构造函数问题。在不设置KeepAlive的情况下,新页面的返回会再次调用构造函数,而且是调用默认的。原创 2013-02-28 10:20:10 · 2278 阅读 · 0 评论 -
WPF-006:判断当前是否有人操作
检测当前程序是否有人操作应该再实际中还是有用的。最简单的方法时判断鼠标位置是否改变了。winform中也是一样。直接看代码:public class CheckUsedManager { public static event EventHandler TimeToFinishedEvent = null; private static Dispat原创 2013-02-28 12:27:24 · 3267 阅读 · 1 评论 -
WPR-007:WPF中窗体的透明设置
一般使用WindowStyle=,Background=,AllowsTransparency,Opacity来进行设置。1、设置Opacity控制整个窗口的透明,包括上面的控件Window x:Class="TestTransparentWindow.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xa原创 2013-02-28 17:18:24 · 6276 阅读 · 1 评论 -
WPF-009:WPF窗体的拖动
在使用了WindowStyle="None"时,你可能想自定定义窗体的一些操作,拖动就是常用的。实现起来也很简单:第一种:<Window x:Class="TestWPFDrag.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="htt原创 2013-03-22 10:22:25 · 3020 阅读 · 0 评论 -
WPF-10:绑定时注意UpdateSourceTrigger
在一个项目中在用到绑定的时候一直有一个问题,虽然设置了Mode=TwoWay,界面的值修改了,但是后天绑定的值没有变化。最终发现了问题,在于UpdateSourceTrigger属性的使用,通过这个属性指定什么时刻去通知源数据改变值。默认是失去焦点触发,当然也可以根据程序需要,更改触发条件。例如:控件属性="{Binding SettingMarkContent,Mode=TwoWay,Upd原创 2013-03-22 10:33:30 · 6741 阅读 · 0 评论 -
WPF-11:WPF触发器
直接贴代码,看效果:<Window x:Class="TestTigger.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Tit原创 2013-03-22 10:55:39 · 1485 阅读 · 0 评论 -
WPF-008:使用PageFunction导航不能使用带参构造和线程导航
PageFunction进行导航比较符合逻辑。简单的使用如下。例如:有两个页面,Page1和Page2Page1:<PageFunction x:Class="TestFounctionPage.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="ht原创 2013-03-22 10:03:21 · 1997 阅读 · 0 评论 -
WPF-13:资源文件需要手动引用问题
最近碰到一个问题。两个自定义控件,其中用到图片,即。控件1:<UserControl x:Class="TestImageSource.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://sche原创 2013-04-08 17:57:31 · 1969 阅读 · 1 评论 -
WPF-24:绘制正多边形
一般来说绘制正N边形,使用Blend直接画出来就好。不过可能是博主受WInform影响比较大,比较喜欢使用画出来的图形。如果要绘制正N边形,前面的绘制五角星的公式可以通用的(http://blog.csdn.net/yysyangyangyangshan/article/details/9378871)。主要是利用圆,根据三角函数和圆的半径计算出圆上的N个点即可。计算N各点的方法如下:privat原创 2013-09-26 21:05:40 · 6101 阅读 · 0 评论