wpf
文章平均质量分 65
简单的绿竹
学无止境,活到老学到老。脚踏实地,一步一个脚印。坚持,用心,努力,加油!
展开
-
C# wpf 实现窗口按比例缩放
做客户端有时为了让界面适用各种不同的系统分辨率,让界面内控件布局大小始终保存比例是一种方法。一般可以使用配置文件做不同分辨率的适配实现,或者通过代码根据不同的分辨率重新计算控件大小及位置实现。将窗口本身需要的容器设在ViewBox标签下,即成为二级容器,设置其大小。需要注意的是,二级容器大小必须大于等于适配的所有分辨率,比如适配的最大分辨率是1080p,则二级容器大小至少设为1080p。下面代码中,窗口是按照1920x1080设计的,但实际的窗口只有640x360,但其显示的效果控件比例始终是一样的。原创 2024-05-23 14:40:07 · 961 阅读 · 0 评论 -
WPF中,回车触发按钮点击事件
设置Button的 IsDefault=”True”,即可。原创 2024-02-22 15:58:46 · 696 阅读 · 0 评论 -
wpf menu 菜单 快捷键
原文链接:https://blog.csdn.net/weixin_53370274/article/details/116518680。<RoutedUICommand x:Key="Search" Text="查找内容"/><RoutedUICommand x:Key="F3" Text="查找内容"/>//或者 //dg可以改为其它的控件或直接设置ContextMenu。Ctrl+F F3可加入其它,自行定义。Page可改为Windows。wpf button左键菜单。原创 2024-02-22 00:38:18 · 577 阅读 · 0 评论 -
WPF中DataGrid垂直滚动条滚动后行号错乱的解决办法
DataGrid 的 EnableRowVirtualization 属性默认值是True,就是说动态加载数据,只实例化屏幕内可见的数据;行头的内容是通过绑定实现的,但是滚动刷新时传入的DataGridRow并不是实际位置的行,而是虚拟的,造成行头显示内容错乱;原文链接:https://blog.csdn.net/qq_29821795/article/details/120409288。方法1:设置EnableRowVirtualization=“False",简单易行,但系统资源的开销大。原创 2024-02-21 13:46:56 · 775 阅读 · 0 评论 -
WPF 入门教程DispatcherTimer计时器
在 WinForms 中,有一个名为 Timer 的控件,它可以在给定的时间间隔内重复执行一个操作。WPF 也有这种可能性,但我们有控件,而不是不可见的控件。它几乎做同样的事情,但不是将它放在表单上,而是专门从代码隐藏代码中创建和使用它。DispatcherTimer 类的工作方式是指定一个时间间隔,然后订阅每次满足该时间间隔时将发生的事件。在调用方法或将属性设置为 true之前,不会启动 DispatcherTimer。XAML 部分非常简单——它只是一个带有大字体的居中标签,用于显示当前时间。原创 2024-01-05 17:29:17 · 1707 阅读 · 0 评论 -
WPF 如何知道当前有多少个 DispatcherTimer 在运行
在 WPF 中,如果有 DispatcherTimer 定时器在执行,将会影响到主线程的执行,将会让主线程诡异忙碌。在遇到没有任何的交互时,此时出现的主线程卡的问题,可以优先尝试了解是否 DispatcherTime 定时器的问题。即可了解当前主线程有多少个 DispatcherTime 定时器在运行。根据 Dispatcher.CurrentDispatcher 的定义,此 CurrentDispatcher 是 ThreadStatic 线程静态,因此以上调试断点必须落在主线程执行的代码。原创 2024-01-05 17:26:47 · 779 阅读 · 0 评论 -
WPF异常“调用线程无法访问此对象,因为另一个线程拥有该对象 ”
WPF中在对界面进行操作的时候,可能会遇到“调用线程无法访问此对象,因为另一个线程拥有该对象”异常,这是因为WPF中只有UI线程才能操作UI元素,非UI线程要访问UI时就会报异常了。Dispatcher.BeginInvoke()与Invoke()方法。BeginInvoke()异步执行,不等待委托结束就更新,Invoke()同步执行,需等待委托执行完。如:textBox.Text="";原创 2024-01-04 18:20:55 · 628 阅读 · 0 评论 -
DispatcherSynchronizationContext and Dispatcher
如果在非UI线程调Dispather.CurrentDispatcher(), 然后dispatcher.BeginInvoke(),什么都不会发生,没有异常,没有警告。调Dispatcher.CurrentDispatcher时,如果当前线程没有dispather,会创建一个。提供一个自由线程的同步上下文,一个常用的用法是把UI线程的同步上下文保存起来,传给另一个线程,因为UI只能再UI线程中操作,在另外一个线程,用SynchronizationContext把操作跳转到UI线程。原创 2023-11-17 09:50:55 · 195 阅读 · 0 评论 -
内存泄漏之DispatcherTimer
上面的代码非常的简单,就是在窗口构造函数执行的时候 new 了一个 DispatcherTimer,“老师”告诉我们,一个变量的生命周期在大括号内,也就是构造函数执行完毕之后timer就应该被回收了,但是事实上,窗口关闭以后,仍然每秒输出当前时间。造成的内存泄漏分析完毕,我们知晓了微软是如何维护计时器的,也知道造成泄漏的根本原因就是还有引用,解决措施就很简单了:在不需要用到计时器的时候Stop就可以了,在Tick方法中停止也是可以的。除了内部被引用外,外部再也没有办法通过正常的途径去找到它了,于是。原创 2023-05-22 11:07:11 · 614 阅读 · 0 评论 -
WPF ——Trigger触发器
WPF ——Trigger触发器原创 2022-11-01 11:38:16 · 4599 阅读 · 0 评论 -
wpf label下划线不显示的问题
wpf label下划线不显示的问题原创 2022-10-23 15:37:41 · 1276 阅读 · 0 评论 -
WPF 中 DispatcherTimer 计时器
WPF 中 DispatcherTimer 计时器原创 2022-10-19 13:35:58 · 1770 阅读 · 0 评论 -
WPF:如何在工作线程中更新窗体的UI元素(Dispatcher机制)
WPF跨线程更新UI元素原创 2022-10-13 14:01:13 · 1179 阅读 · 0 评论 -
wpf删除确认 MessageBox.Show
WPF原创 2022-10-13 12:35:32 · 310 阅读 · 0 评论 -
WPF DataGrid.DataGridComboBoxColumn 数据绑定 可用自由示例
WPF DataGrid Combox下拉列原创 2022-10-12 22:48:24 · 825 阅读 · 0 评论 -
WPF中使用RenderTransformOrigin来控制动画的起点
WPF中使用RenderTransformOrigin来控制动画的起点原创 2022-08-23 16:22:31 · 947 阅读 · 0 评论 -
如何在WPF网格中隐藏行
WPF隐藏行内容原创 2022-08-11 15:02:14 · 913 阅读 · 0 评论 -
WPF学习总结和记录(九)-Grid仿VS的界面
wpf控件学习原创 2022-08-11 14:34:40 · 347 阅读 · 0 评论 -
WPF学习总结和记录(八)-尺寸缩放 定位 下
wpf控件学习原创 2022-08-11 14:29:30 · 104 阅读 · 0 评论 -
WPF学习总结和记录(七)-尺寸缩放 定位 上
WPF控件学习原创 2022-08-11 14:07:36 · 145 阅读 · 0 评论 -
WPF学习总结和记录(六)-文本和墨水
WPF控件学习原创 2022-08-11 14:00:26 · 224 阅读 · 0 评论 -
WPF学习总结和记录(五)-Menu
WPF控件学习原创 2022-08-11 13:58:46 · 1304 阅读 · 0 评论 -
WPF学习总结和记录(四)Items控件下
WPF控件学习原创 2022-08-11 13:56:53 · 155 阅读 · 0 评论 -
WPF学习总结和记录(三)Items控件上
WPF控件学习原创 2022-08-11 13:55:16 · 266 阅读 · 0 评论 -
WPF学习总结和记录(二)内容控件
WPF控件学习原创 2022-08-11 13:52:00 · 70 阅读 · 0 评论 -
WPF学习总结和记录(一)内容控件
WPF控件学习原创 2022-08-11 13:48:13 · 207 阅读 · 0 评论 -
深入理解WPF布局子系统
深入理解WPF布局子系统原创 2022-08-04 14:20:54 · 207 阅读 · 0 评论 -
快速掌握WPF XAML基本知识
快速掌握WPF XAML基本知识原创 2022-08-04 14:18:00 · 440 阅读 · 0 评论 -
独特思路分析WPF架构
独特思路分析WPF架构原创 2022-08-04 11:26:39 · 993 阅读 · 0 评论 -
WPF的由来
WPF的由来原创 2022-08-04 10:32:39 · 690 阅读 · 0 评论 -
依赖注入跟::调用方法,哪种好,有什么区别?
WPF注入方式和直接调用代码区别原创 2022-08-03 15:56:07 · 271 阅读 · 0 评论 -
利刃 MVVMLight 3:双向数据绑定
https://www.cnblogs.com/wzh2010/p/6286923.html上篇我们已经了解了MVVM的框架结构和运行原理。这里我们来看一下伟大的双向数据绑定。说到双向绑定,大家比较熟悉的应该就是AngularJS了,几乎所有的AngularJS 系列教程的开篇几章都要涉及到,真的是很好用。表达的效果很简单:就是在界面的操作对数据模型的修改能实时反映到数据;而数据的变更能实时展现到界面。即视图数据模型(ViewModel)和视图(View)之间的双向绑定和触发。..原创 2022-03-22 15:20:55 · 222 阅读 · 1 评论 -
利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
https://www.cnblogs.com/wzh2010/p/6285990.html上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中。这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式。MVVMLight安装之后,我们可以看到简易的框架布局,如上篇,生成了一个ViewModel文件夹,ViewModel层的内容都放在这边,除了Main对象的ViewModel之外,还包含一个ViewModelLocator文件,用来注入当前的View.原创 2022-03-21 15:38:31 · 530 阅读 · 2 评论 -
利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
https://www.cnblogs.com/wzh2010/p/6285954.html一、MVVM 和 MVVMLight介绍MVVM是Model-View-ViewModel的简写。类似于目前比较流行的MVC、MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合。它是一种极度优秀的设计模式,但并非框架级别的东西,由MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构。立足于原有MVP框架并且把WPF的..原创 2022-03-21 15:14:17 · 1501 阅读 · 0 评论 -
C#中timer类的用法
https://www.cnblogs.com/yank/archive/2007/12/03/981238.htmlC#中timer类的用法关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现...原创 2022-01-19 12:27:58 · 550 阅读 · 0 评论 -
DispatcherTimer和Timer的区别
https://blog.csdn.net/sun_zeliang/article/details/82285396两者区别是 Timer在非UI线程跑的,DispatcherTimer是在UI线程跑的,DispatcherTimer 可以直接更新UITimer必须使用this.Dispatcher.BeginInvoke去更新UI private void DisPatcherTimerMethod() { Dispatcher...原创 2022-02-22 16:49:10 · 311 阅读 · 0 评论 -
SynchronizationContext 综述
http://msdn.microsoft.com/zh-cn/magazine/gg598924.aspx多线程编程相当困难,而且要进行多线程编程需要了解无数概念和工具。为此,Microsoft .NET Framework 提供了 SynchronizationContext 类。很遗憾,很多开发人员甚至不知道这个有用的工具。无论是什么平台(ASP.NET、Windows 窗体、Windows Presentation Foundation (WPF)、Silverlight 或其他),..原创 2022-01-29 11:01:12 · 246 阅读 · 0 评论 -
C# BackgroundWorker使用总结
C# BackgroundWorker使用总结 - 五维思考 - 博客园查询了一下MSDN文档,其中微软就BackgroundWorker类的功能有这么一个描述(英文的,根据个人理解翻译):BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(UI)停止响应的耗时操作(比如文件下载数据库事务等),并且想要一个响应式的UI来反应当前耗时操作的进度。可以看的出来,BackgroundWorker组件提供了一种执行异步操作(后台线程)的同时,并且还能妥妥的显示操作进度的解决方案。.原创 2021-12-23 14:24:33 · 900 阅读 · 0 评论 -
mc:Ignorable=“d“什么意思?
有两个命名空间我们要注意一下的:xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"d可以理解为是设计时的状态,d:DesignWidth="480"就是说这个宽度和高度只是在设计时有效,也就是我们在设计器中看到的大小,并不意味着真正运行起来是这个值,有可能会随着手机屏幕的不同而自动调整,所以我原创 2021-12-14 12:54:20 · 643 阅读 · 0 评论 -
WPF之Binding深入探讨
http://www.cnblogs.com/cappuccino/p/3251631.htmlWPF之Binding深入探讨1,Data Binding在WPF中的地位程序的本质是数据+算法。数据会在存储、逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要。但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处:A。转载 2016-01-24 19:02:21 · 828 阅读 · 0 评论