在UWP中,我们可以使用
ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(500, 500));
,
ApplicationView.GetForCurrentView();
在WinUI 3中返回null。有没有办法设置窗口的最小尺寸
推荐的解决方案,在GitHub上实现,是使用p/Invoke调用窗口子类函数SetWindowSubclass
和DefSubclassProc
:
- 写一个静态的WndProc方法处理
WM_GETMINMAXINFO
,然后转发任何其他窗口消息到原始的WndProc,通过DefSubclassProc
(或CallWindowProc
在例子中),尽管注意缺点)。 - 注册你的新WndProc通过
SetWindowSubclass
(或SetWindowLongPtr
在示例中)。
这来自于XAML GitHub repo的一个问题。
参见这个类似的问题和另一个类似的问题以获得更多信息。