Windows App SDK 1.4 的标题栏可拖拽问题

不一定是最新, 因为我已经换 Uno Platform 了()

自从 Windows App SDK 1.4 发布起,搜索结果的几个排在前面的文章中的更改标题栏可拖拽区域已经全部失效了, 因为 SetDragRectangles 方法在Microsoft Learn中已经标记为 "已废弃", 这意味这这个方法已经不能在新版 Windows App SDK 1.4 起作用 (从没见过更新如此明显的库(雾))

当然, Microsoft给了一个替代方法, 这个方法是我在 Microsoft Q&A 问到的 :)

代码如下:

IntPtr hWndMain = WinRT.Interop.WindowNative.GetWindowHandle(this);
Microsoft.UI.WindowId myWndId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(hWndMain);

var incps = InputNonClientPointerSource.GetForWindowId(myWndId);
incps.SetRegionRects(NonClientRegionKind.Caption, new RectInt32[] { new RectInt32(X, Y, Width, Height) });

其中, X, Y 表示横坐标和纵坐标, Width 表示宽, Height 表示高.

不建议删除代码的任何内容 (除非你代码已经写了这些东西的其中一些), 因为这段代码的所有地方都是关联起来的, 你在修改后可能会导致报错, 异常或各种Bug (当然如果你有更好的解决方案当我没说).

当然, 变量名随便改😉