WPF
文章平均质量分 80
JimCarter
与专业人员为伍,guyiming2011@126.com
展开
-
【WPF】作为一个WPF开发者你所应该知道关于Avalonia的二三事
Avalonia 是 WPF 的强大替代方案,它从头开始设计为跨平台,同时提供与 WPF 非常相似的开发体验。如果您是 XAML 和 MVVM 方面的专家,那么使用 Avalonia 开发应用程序时,您会感到宾至如归。它的日益普及反映了开发人员的优先事项向跨操作系统运行的强大解决方案的转变。IDE支持使用JetBrains Rider或者安装VisualStudio2022插件:支持的.NET版本.NET 5+ (包括最新的 .NET 8)参考avatoolkit创建:与创建Window。原创 2024-10-26 22:35:33 · 358 阅读 · 0 评论 -
WPF创建无边框窗体
WPF自带的窗体边框和标题栏只包含基础的功能,无法满足项目的视觉效果,经常会遇到需要去掉框架自带标题栏的情况。(注意:当窗体最大化时,内容与屏幕会有一个负8的margin,所以在。时手动补偿正8的margin。原创 2023-05-29 17:24:59 · 1459 阅读 · 0 评论 -
【WPF】UI虚拟化之------自定义VirtualizingWrapPanel
前言前几天QA报了一个关于OOM的bug,在排查的过程中发现,ListBox控件中被塞入了过多的Item,而ListBox又定义了两种样式的ItemsPanelTemplate。一种用的是虚拟化的VirtualizingStackPanel,另一种没有考虑虚拟化用的是WrapPanel。所以当ListBox切换到第二种Template,而且有很多Item的时候,内存就爆掉然后直接挂了。然后就想着有没原创 2017-12-15 17:48:23 · 7459 阅读 · 3 评论 -
【WPF】右下角弹出自定义通知样式(Notification)——简单教程
1.先看效果2.实现1.主界面是MainWindow上面就只摆放一个Button即可。在Button的点击事件中需要new一个弹出的NotificationWindow。代码如下: public static List<NotificationWindow> _dialogs = new List<NotificationWindow>(); int i = 0; private void Bu原创 2017-07-13 18:11:04 · 12910 阅读 · 9 评论 -
【wpf】在win10系统上弹出toast和notification
老规矩,先看效果右下角的notification: 操作中心的notification: 整体效果: 前提条件1.需要在开始菜单里添加快捷方式。2.在注册表里注册你实现了INotificationActivationCallBack接口的com组件。3.一个APP_ID,添加到快捷方式里,ActionCenter会以此来区分不同应用的消息。缺一...原创 2017-11-13 17:53:04 · 15660 阅读 · 8 评论 -
【WPF】DPI对控件定位产生的影响
需求程序界面上是一个Window,当用户点击桌面上除此Window之外的任何地方,都要把这个window隐藏掉。程序有个托盘图标,点击托盘图标不能隐藏window,托盘上有个右键菜单,点击右键菜单也不能隐藏。分析1.系统像素与显示器像素我们知道wpf中控件宽高的单位是1/96英寸,如果你系统的dpi为96(再这里我们不考虑显示器的dpi,那是windows系统的事情),那么1/96英寸就是1个系统像原创 2017-08-26 18:28:27 · 3089 阅读 · 1 评论 -
【C#】wpf添加gif动图支持
1.nuget里下载WpfAnimatedGif包,然后安装。2.添加WpfAnimatedGif包的命名空间:xmlns:gif="http://wpfanimatedgif.codeplex.com"3.开始使用: 这段代码只是个示例,主要的就是把AnimatedSource设置为你的gif动画即可。总的代码:<Page x:Class="Omni.To原创 2017-06-08 17:21:27 · 6777 阅读 · 7 评论 -
【WPF】SnapsToDevicePixels与UseLayoutRounding二者到底有什么区别?供参考
MSDN上解释了一大堆,二者对比来看,并不能发现什么明显的区别,微软爸爸也不知道多给写图文实例。经过几个小时的摸索,现得到以下共同点和不同点,仅供参考:共同点默认值都是false,如果设置到root元素上,则child元素也自动使用同样设置。都是为了解决wpf元素边缘模糊的问题(如下)。wpf界面元素呈现时为了看起来更平滑一点,是有抗锯齿效果的,抗锯齿效果就会导致边缘模糊。举个例子来说,边缘是原创 2017-08-21 19:05:43 · 8880 阅读 · 3 评论 -
【C#】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思
新建一个wpf的项目,我们先来看下它默认的命名空间都是哪些?可以看到xmlns有的是网址,有的是clr-namespace开头的一串字母。clr开头的比较好理解,就是运行时的命名空间,就像C#代码中的using xxxx之类的一样。但是对于网址开头的命名空间有可能就有点疑惑了,它究竟代表的是什么?xaml文件被解析的时候会访问这个网址吗?如果这个网址那天不能get了,那我们的程序是...原创 2017-05-05 16:01:47 · 10852 阅读 · 7 评论 -
【C#】wpf自定义calendar日期选择控件的样式
首先上图看下样式原理总览ItemsControl内容的生成实现界面的实现后台ViewModel的实现首先上图,看下样式 原理1. 总览:Calendar本质上是一个6x7的列表,这个列表可以用ItesControl来实现。其填充的每一个item都是一个自定义样式的Button,Button外面是一个圆形的border。根据Button按钮的IsEnabled状态,设置foregroun原创 2017-06-19 18:09:42 · 9804 阅读 · 6 评论 -
【WPF】wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例
用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题,一般通过设置xaml中的BindingParameter属性来给Converter传递参数。但是这个BindingParameter只支持已经定义好的资源类型(Resource),不支持int,Object等类型,在BindingParameter中也无法再次通过Binding的方法动态赋值。所以,折腾来折腾去还不如用M原创 2017-04-22 15:32:06 · 8584 阅读 · 0 评论