问题描述
我的UWP应用中有一个按钮,可将应用进入画中画模式。 PIP mopde中的窗口大小可以在150 x 150和500 x 500之间更改,并且我可以在进入紧凑叠加模式时设置窗口大小。但是我想限制PIP模式下应用程序的最小窗口大小。如何限制应用大小调整为默认的150x150最小尺寸。
var applicationView = ApplicationView.GetForCurrentView();
var viewmodePreference = viewmodePreferences.CreateDefault(Applicationviewmode.CompactOverlay);
viewmodePreference.CustomSize = new Size(width,height);
applicationView.SetPreferredMinSize(new Size(360,400));
await applicationView.TryEnterviewmodeAsync(Applicationviewmode.CompactOverlay,viewmodePreference);
SetPreferredMinSize()不能解决目的。请帮我解决。谢谢
解决方法
请查看SetPreferredMinSize
文档,
允许的最小最小尺寸为192 x 48有效像素。允许的最大最小尺寸为500 x 500有效像素。如果将值设置为超出这些范围,则该值将被强制在允许的范围内。 (要了解有效像素,请参阅的响应式设计101。)
因此,请将最大宽度从150修改为192。
private void Button_Click(object sender,RoutedEventArgs e)
{
var size = new Size(192,150);
ApplicationView.GetForCurrentView().TryResizeView(size);
}
更新
如果要限制用户以覆盖模式调整窗口大小。请在用户更改窗口大小时收听SizeChanged
事件并调整点子视图的大小。
private void CoreWindow_SizeChanged(Windows.UI.Core.CoreWindow sender,Windows.UI.Core.WindowSizeChangedEventArgs args)
{
var applicationView = ApplicationView.GetForCurrentView();
if(applicationView.ViewMode == ApplicationViewMode.CompactOverlay)
{
var size = new Size(200,200);
ApplicationView.GetForCurrentView().TryResizeView(size);
}
}