随笔分类 -  WPF

摘要:<Style x:Key="ArrowToggleStyle" TargetType="ToggleButton"> <Setter Property="Background" Value="Gray"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ToggleButton"> <Border 阅读全文
posted @ 2019-11-14 11:19 幕三少 阅读(3654) 评论(0) 推荐(0) 编辑
摘要:在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图片,设置Image的source属性时可以使用相对路径也可以使用绝对路径,一般情况下建议使用绝对路径,类似于下面的形式Source="/Demo;Component/Images/Test.jpg"其 阅读全文
posted @ 2019-10-22 21:13 幕三少 阅读(1334) 评论(0) 推荐(0) 编辑
摘要:使用: 阅读全文
posted @ 2019-08-19 19:33 幕三少 阅读(1307) 评论(0) 推荐(0) 编辑
摘要:How to avoid WPF TreeView SelectedItemChanged being called twice Very often, we need to execute some code in SelectedItemChanged depending on the sele 阅读全文
posted @ 2018-09-04 11:09 幕三少 阅读(891) 评论(0) 推荐(0) 编辑
摘要:最开始见的是PostSharp的一个实现: http://doc.postsharp.net/inotifypropertychanged-add。不过PostSharp是收费的,后来也逐渐由了许多其它的免费的解决方案。本文这里介绍的是一个开源的解决方案:Fody。 使用它非常简单,首先通过Nuge 阅读全文
posted @ 2018-06-21 17:50 幕三少 阅读(1461) 评论(0) 推荐(2) 编辑
摘要:我们在用到ItemsControl时,有时会用到分组,如ListBox,ListView,DataGrid。WPF的ItemsControl可以实现分组,是依托于GroupStyle,以ListBox为例,他的分组效果图为: 以下为前台: 从16行可以看出,GroupStyle定义的是控件内部样式, 阅读全文
posted @ 2018-06-21 17:41 幕三少 阅读(4887) 评论(7) 推荐(3) 编辑
摘要:json作为互联网上轻量便捷的数据传输格式,越来越受到重视。但在服务器端编程过程中,我们常常希望能通过智能提示来提高编码效率。JSON C# Class Generator 能将json格式所表示的Javascript对象转化成强类型的C#实体类,来实现减少代码输入的效果。 http://jsonc 阅读全文
posted @ 2018-05-03 15:36 幕三少 阅读(3178) 评论(8) 推荐(2) 编辑
摘要:在开发中我们经常将WebBrowser控件嵌入Winform 程序来浏览网页,既然是网页那么少不了JS。下面就让我们来说说他们两之间的相互调用。 在C#封装的浏览器内核中,Chromium 内核封装有Xilium.Cefglue、Cefsharp,Webkit 内核封装 Webkit.Net 、Op 阅读全文
posted @ 2018-02-28 16:55 幕三少 阅读(7118) 评论(0) 推荐(1) 编辑
摘要:做了一个Winform的项目。项目里使用了WebBrowser控件。以前一直都以为WebBrowser是直接调用的系统自带的IE,IE是呈现出什么样的页面WebBrowser就呈现出什么样的页面。其实并非如此。我的Winform程序加载了一个Web项目。这个项目对IE8一下的浏览器布局兼容不是太好。 阅读全文
posted @ 2018-02-28 16:48 幕三少 阅读(1311) 评论(2) 推荐(1) 编辑
摘要:给ContextMenu菜单添加图片 给ContextMenu菜单添加分割条 阅读全文
posted @ 2014-10-16 17:14 幕三少 阅读(8535) 评论(2) 推荐(0) 编辑
摘要:WPF可以直接通过设置图形类控件的水平和垂直Alighment为Stretch实现用一个ViewBox装上所有的Window内容然后当window缩放时就可以一起放大缩小了ViewBox的显示机制是,先在内存中把按照逻辑大小把子控件显示出来,然后等比例的缩放显示到ViewBox的客户区例:Butto... 阅读全文
posted @ 2014-08-23 14:42 幕三少 阅读(6025) 评论(2) 推荐(1) 编辑
摘要:1.TreeView选择事件执行两次Very often, we need to execute some code inSelectedItemChangeddepending on the selectedTreeViewItem. ButSelectedItemChangedis called... 阅读全文
posted @ 2014-08-21 17:08 幕三少 阅读(3868) 评论(0) 推荐(0) 编辑
摘要:主面板上有一个Calendar控件,点击选择了日期后,如果点击确认按钮,需要点击两次。这个问题的解决方法如下:private void calendar1_PreviewMouseUp(object sender, MouseButtonEventArgs e){if (Mouse.Captured is CalendarItem){Mouse.Capture(null);}}本人亲自验证。 阅读全文
posted @ 2013-11-06 17:02 幕三少 阅读(577) 评论(0) 推荐(0) 编辑
摘要:使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件。具体实现如下:创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目->视图->注册表, 要使软件在开机就运行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中添加键值保存软件目录。在这里我们依次添加以上的项,然后在Run中添加键值,键名可以自己起,value要填软件的物理路径。物理路径是客户在部署确定的,我们如何获取呢?这里我们可以使用[TARGETDIR]获取客户选择的路径, 阅读全文
posted @ 2013-09-27 11:00 幕三少 阅读(1333) 评论(0) 推荐(0) 编辑
摘要:先上图解决方法: ...解决问题在CSDN上找到另外一种方法:用StyleSnooper看一下默认的Style,改一下就可以了。三种颜色 IsMouseOver = Blue Select & Focus = Red Select & UnFocus = Yellow大家也可以尝试下: ... 阅读全文
posted @ 2013-09-23 18:50 幕三少 阅读(3806) 评论(1) 推荐(0) 编辑
摘要:Each "View" is an independent XAML file. I'd like to be able to set up the triggers in those files, looking at the ListBoxItem's IsSelected property, in order to control the visibility of the various controls within.The template to override the ListBoxItem... 阅读全文
posted @ 2013-09-12 18:47 幕三少 阅读(1865) 评论(0) 推荐(1) 编辑
摘要:这段时间我们小组要给部门的Annual Meeting準备一个WPF的抽奖程序,为了增加程序的有趣性,我们在程序中需要播放背景音乐等。由於对之前从未使用过WPF,所以对其中的声音等媒体文件播放不是很清楚,对一些简单的问题也花了相对较长的时间去解决,现在将其总结在下麵,以供大家参考。1,使用SoundPlayer类SoundPlayer类位於System.Media命名空间下,它只能播放.wav格式的声音文件。其使用方法简单如下:[C#]view plaincopyusing(SoundPlayerplayer=newSoundPlayer()){stringlocation=System.En 阅读全文
posted @ 2013-09-12 13:01 幕三少 阅读(2378) 评论(0) 推荐(0) 编辑
摘要:使用线程新建窗体项目中需要一个公用的进度条窗体.大家知道在wpf中,有两个线程,一个是UI线程,另一个是监听线程(一直监听用户的输入).如果我们后台有阻塞UI线程的计算存在,那么界面上的比如进度条什么动态的UI都会被因为阻塞而静止不动.所以我的想法就是新起一个线程来负责进度条窗体的显示与关闭,具体实现代码如下: private static Thread th; /// /// 显示进度条 线程 /// /// 进度条界面需要显示的文字 /// 增加进度条存在的延迟时间,单位为毫秒 public sta... 阅读全文
posted @ 2013-09-02 08:11 幕三少 阅读(3131) 评论(1) 推荐(1) 编辑
摘要:ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注:Minimum——最小值,默认为0;Maximum——最大值,默认为100.Value——当前值。关键是它的控件模板,因为系统的默认主题不好看,很多时候我们是需要自定义样式和模板。老方法,先看定义:[csharp]view plaincopyprint?[TemplatePartAttribute(Name="PART_Track",Type=typeof(FrameworkElement))][TemplatePartAttribute(Name="PART_Indicator&quo 阅读全文
posted @ 2013-08-26 16:21 幕三少 阅读(6545) 评论(4) 推荐(0) 编辑
摘要:在项目中增加两张图片Content.jpg和Resource.jpg,分别将其生成操作属性设置为Content和Resource。在界面中增加两个Image控件ImgContent和ImgResource,在XAML中分别设置Source路径为Content.jpg和Resource.jpg。运行后ImgResource能正常显示图片,但是ImgContent控件无显示。将Content.jpg图片拷贝至应用程序的Debug目录中,ImgContent控件可显示图片。生成操作设置为Resource,生成的时候资源将添加到程序集中。可以尝试将原有的图片删除,图片正常显示。将原有图片用新图片替换, 阅读全文
posted @ 2013-08-20 15:08 幕三少 阅读(1903) 评论(2) 推荐(1) 编辑