0

我的 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() 没有解决目的。请帮我解决问题。谢谢

4

1 回答 1

0

请检查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当用户更改窗口大小时,请收听事件并调整 pip 视图的大小。

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);
    }
}
于 2020-11-02T13:10:20.037 回答