最新 最热

Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32)

本文将介绍 Windows 系统中高 DPI 开发的基础知识。由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中;所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容,以免不断踩坑。...

2023-10-22
1

两个方法,让 WPF 绘制的笔迹更加平滑

在 WPF 中绘制笔迹的时候,你可能会注意到绘制的笔迹非常的……呃……棱角分明。这在鼠标绘制的时候大家基本都能接受,但如果遇到一些触摸框报告触摸点也那么稀疏,那么写的字很不好看。另外,还有可能绘制的笔迹点来源于其...

2023-10-22
1

WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True)

在 WPF 中,如果想做一个背景透明的异形窗口,基本上都要设置 WindowStyle="None"、AllowsTransparency="True" 这两个属性。如果不想自定义窗口样式,还需要设置 Background="Transparent"。这样的设置会让窗口变成 Layere...

2023-10-22
1

WPF 窗口和控件的 Unloaded 事件什么情况下不会触发

WPF 中如果监听窗口或者控件的的 Unloaded 事件,那么这个事件会触发吗?答案是不确定的。

2023-10-22
1

如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值

WPF 备份某控件的一些属性,做一些神奇的操作,然后再还原这些属性。多么司空见惯的操作呀!然而怎么备份却是值得研究的问题。直接赋值?那一定是因为你没踩到一些坑。...

2023-10-22
1

WPF / Windows Forms 检测窗口在哪个屏幕

使用 Windows Forms 自带的 System.Windows.Forms.Screen 类可以从一个窗口句柄获取到对应的屏幕。随后可以使用此 Screen 类获取各种屏幕信息。

2023-10-22
1

准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内

你的 WPF 窗口是可以拖到屏幕外面去的,所以拉几个元素到屏幕外很正常。你的屏幕可能有多个。你的多个屏幕可能有不同的 DPI。你检测的元素可能带有旋转。...

2023-10-22
1

一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?

在 WPF 中打开一个 Popup 并没有想象当中容易。虽说提供了一个 IsOpen 属性用于显示 Popup,但实际上造成的 Bug 会让你解得死去活来。Win32 的 WS_POPUP 也坑,不过 WPF 会额外再带来一些,所以本文只说 WPF。...

2023-10-22
1

解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题

因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI。不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现中的一个重要缓解,使用子窗口的方式。...

2023-10-22
1

WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例

本文将解释如何最大程度压榨 WriteableBitmap 在 WPF 下的性能。

2023-10-22
1