XAML 最小应用程序屏幕大小

wvt8vs2t  于 2023-05-04  发布在  其他
关注(0)|答案(3)|浏览(130)

如何在通用应用程序(win10)中为应用程序窗口设置最小大小?在我项目中,只有带有Page标记的对象,而没有Windows。我希望该应用程序的屏幕不能调整大小关闭certein值少。
多谢

t1rydlwq

t1rydlwq1#

在Windows 8.1通用应用程序的Package.appxmanifest中,您可以将最小宽度设置为3 pre-defined values之一。在页面上设置最小值不会阻止应用程序调整大小。设置最大值也不会阻止调整大小,但当应用程序框架大于您设置的尺寸时,它会导致黑色边框。值得一提的是,320像素是8.1和Windows 10(手机)上的绝对最小宽度。
在Windows 10 UWP中,此属性不再可用。您应该AdaptiveTriggers来处理Windows 10上的UI布局。
如果你想检查最小尺寸,请记住你的电脑的缩放比例。我的笔记本电脑扩展了125%,桌面客户端的最小尺寸的屏幕截图是627x441(100%时约为500x350),包括用于应用程序栏的空间。但更常见的是在手机和平板电脑之间只使用AdaptiveTrigger和720 pixels as the cut-off

2guxujil

2guxujil2#

如果你正在开发一个通用的应用程序,你不应该设置一个最小宽度。它应该适用于所有分辨率和设备。
你应该使用可视状态管理器和自适应触发器。
祝你好运!

wn9m85ua

wn9m85ua3#

我在2023年遇到了这个问题,对于WinUI 3XAML。
如果你可以访问WndProc(你可以在WinUI 3 [可能还有WPF]中访问,但不能在UWP中访问),你可以使用它来设置应用的最小大小。
推荐的解决方案implemented on GitHub是使用P/Invoke调用窗口子类函数SetWindowSubclassDefSubclassProc
1.编写一个处理WM_GETMINMAXINFO的静态WndProc方法,然后通过DefSubclassProc(或示例中的CallWindowProc)将任何其他窗口消息转发到原始WndProc,尽管注意缺点。
1.通过SetWindowSubclass(或示例中的SetWindowLongPtr)注册新的WndProc。
这是来自an issue on the XAML GitHub repo
参见WinUI 3 How to set Minimum Size of a WindowWM_GETMINMAXINFO in WinUI 3 with C#?

相关问题