随笔分类 -  WPF

摘要:使用全局类型获取焦点事件 EventManager.RegisterClassHandler(typeof(TextBox), TextBox.GotFocusEvent, new RoutedEventHandler(TextBox_GotFocus)); EventManager.Registe 阅读全文
posted @ 2025-10-15 17:20 stweily 阅读(31) 评论(0) 推荐(0)
摘要:WPF 容器尺寸行为总结 在 WPF 中,布局容器的尺寸来源可以分为三类: 一类:尺寸主要取决于 父容器的约束 → “父大则大,父小则小” 一类:尺寸主要取决于 子元素的大小 → “子大则大,子小则小” 一类:尺寸基本固定,不跟随父或子变化 📌 常见容器的尺寸行为对比 容器 自己的设置 父容器约束 阅读全文
posted @ 2025-09-17 10:11 stweily 阅读(18) 评论(0) 推荐(0)
摘要:我们都知道 await 会让当前线程释放回线程池,然后 await后再申请,在默认情况下一放 一申请 这两未必是同一个线程了。 但是我们在写WPF/winform时,如果如下 private async void Button_Click(object sender, RoutedEventArgs 阅读全文
posted @ 2025-08-22 09:39 stweily 阅读(51) 评论(0) 推荐(1)
摘要:关于WPF的画面先上两张重要的图--网的来源的 1.继承UIElement,重写OnRender方法 2、Shapes 图形 组成 3.DrawingVisual 轻量级绘图,只提供显示和测试点击功能,DrawingVisual继承自ContainerVisual,所以其也是Visual集合容器 W 阅读全文
posted @ 2025-08-06 14:11 stweily 阅读(62) 评论(0) 推荐(0)
摘要:先说重点: 透明的窗口在WIN11上摸到了边缘,会出现一个毛玻璃背景让本身透明的窗口不再透明(仅在win11 触摸设备上出现) 我们都知道在WPF写一个透明窗口,而UI不透明 <Window x:Class="TransparentWindowDemo.MainWindow" ... WindowS 阅读全文
posted @ 2025-07-09 14:04 stweily 阅读(49) 评论(0) 推荐(0)
摘要:在写WPF的时候配置文件app.config 读取的办法 -- 【可以直接安装 Microsoft.VisualStudio.SlowCheetah.vsix】 <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> 阅读全文
posted @ 2024-12-31 14:41 stweily 阅读(41) 评论(0) 推荐(0)
摘要:故事是这样的: WPF做一个高性能摄像头采集且显示画面,但是我的C#没有实现直接使用GPU渲染画面,因此在做显示的时候占用CPU过高。 后同事使用C++写了个库, 让我传给他一个窗口句柄,他就来渲染。OK采用WPF里内嵌一个winformHost, 取一个句柄给他,画上。 以为故意就在这告一段落了。 阅读全文
posted @ 2024-09-04 14:47 stweily 阅读(67) 评论(0) 推荐(0)
摘要:记录一次有趣的BUG的历程,现象是这样: 有一个常驻全屏的软件,他有一个设置点切换桌面功能,这个功能正常。没问题。 后来,有了一个新要求,需要增加一个临时的应用程序(常驻桌面全屏的是在一个大一体机上 86寸或100寸,每次切换需要点设置,切换非常不方便), 随便人在哪 五指按着不放就在所在的地方弹出 阅读全文
posted @ 2024-07-26 17:01 stweily 阅读(248) 评论(0) 推荐(0)
摘要:Timer = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 500), DispatcherPriority.Background, Timer_Tick, Dispatcher.CurrentDispatcher); 很正常的增加了一个定时器,奈何死活 阅读全文
posted @ 2024-07-11 19:26 stweily 阅读(70) 评论(0) 推荐(0)
摘要:1 引用Prism.DryIOC 2 xmlns:prism="http://prismlibrary.com/" Application 改成 prism:PrismApplication 3 Windows xmal中增加 prism:ViewModelLocator.AutoWireViewM 阅读全文
posted @ 2024-06-03 20:58 stweily 阅读(41) 评论(0) 推荐(0)
摘要:写WPF的多线程一定离不开这两个东西,但是一些偶尔中发现项目中同事功能我多线程调用的时候发现线程安全问题, 一查,他们都把核心操作都放在了UI线程中操作呀 还是全局大范围的直接放Application.Current.Dispatcher.Invoke, 但是依然出现,细查后发现,有的人使用的是Ap 阅读全文
posted @ 2024-03-21 10:47 stweily 阅读(711) 评论(0) 推荐(0)
摘要:在写WPF触摸时,时常发现能点不能滑--多半是出现在跟随系统启动 或多次插拔USB引起(3 4 5是阅卖wuty007的博客记录-并未验证) 1 触摸设备数 > 0 System.Windows.Input.Tablet.TabletDevices.Count > 0 ; (new Windows. 阅读全文
posted @ 2024-01-10 15:48 stweily 阅读(43) 评论(0) 推荐(0)
摘要:先看一张图 在更改系统的百分比缩放的时候,我们的WPF程序书写好固定的宽高时,会因为这个的变化而变化。但是此时的宽高值是不变的。 因此可以认为WPF中的元素的宽高值是和系统当前的DPI相关统一的。Windows使用此来让WPF随UI的变化而变化 看似这个设计非常的好,而实际的情况是变大或变小后,UI 阅读全文
posted @ 2023-11-22 16:38 stweily 阅读(80) 评论(1) 推荐(1)
摘要:二、WPF退出窗口方法 1、强制退出,即使有其他的线程没有结束 Environment.Exit(0);2、关闭当前程序,如果有其他线程没有结束,不会关闭 System.Windows.Application.Current.Shutdown(); 3、强制终止当前进程,不仅关闭应用程序,还会关闭所 阅读全文
posted @ 2023-10-09 14:37 stweily 阅读(1246) 评论(0) 推荐(0)
摘要:WPF的初始化的顺序 /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent 阅读全文
posted @ 2023-08-18 15:05 stweily 阅读(348) 评论(0) 推荐(0)
摘要:WPF项目中,常状置前的菜单, 控件设备TopMost =true,插拔USB引起触摸点击无效,但鼠标有效果, 怀疑是抢焦点,虽然还是置顶状态,但没有了焦点引起了触摸点击失效,( 如果不设置TopMost =true 不会出现此故障) protected override void OnDeacti 阅读全文
posted @ 2023-04-06 16:20 stweily 阅读(153) 评论(0) 推荐(0)
摘要:1、显示窗体 构造函数 Show()、ShowDialog()方法:Show()方法显示非模态窗口,这意味着应用程序所运行的模式允许用户在同一个应用程序中激活其他窗口。ShowDialog()方法显示模态窗口,这个基本和WinForm类似 当初始化窗口时,将引发 SourceInitialized  阅读全文
posted @ 2023-03-21 19:31 stweily 阅读(436) 评论(0) 推荐(0)
摘要:[DllImport("user32.dll")] static extern int GetSystemMetrics(int nIndex); private const int SM_DIGITIZER = 94; private const int SM_MAXIMUMTOUCHES = 9 阅读全文
posted @ 2023-03-17 15:45 stweily 阅读(45) 评论(0) 推荐(0)
摘要:在窗口的XAML文件中添加以下属性: ShowInTaskbar="False" WindowStyle="None" AllowsTransparency="True" Background="Transparent" window.IsHitTestVisible = false; // 设置为 阅读全文
posted @ 2023-03-03 15:44 stweily 阅读(1126) 评论(0) 推荐(0)
摘要:Timer是在ThreadPool线程池中执行的,每当计时器到期时,就会创建一个线程来执行事件处理程序。这种实现方式可能会导致一些问题,例如计时器事件处理程序可能会与主线程竞争资源,从而导致性能问题。此外,如果计时器事件处理程序抛出未处理的异常,那么将导致应用程序崩溃。 相比之下,Dispatche 阅读全文
posted @ 2023-03-03 10:14 stweily 阅读(143) 评论(0) 推荐(0)