#c# #uwp-xaml #picture-in-picture
#c# #uwp-xaml #картинка в картинке
Вопрос:
В моем приложении UWP есть кнопка, которая переводит приложение в режим «картинка в картинке». Размер окна в PIP mopde может быть изменен между 150 x 150 и 500 x 500, а также я могу установить размер окна при переходе в режим компактного наложения. Но я хочу ограничить минимальный размер окна приложения в режиме PIP. Как я могу ограничить изменение размера приложения до минимального размера по умолчанию 150×150.
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() не решает задачу. Пожалуйста, помогите мне с решением. Спасибо
Комментарии:
Ответ №1:
Пожалуйста, проверьте 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);
}
}
Комментарии:
1. Ранее я просмотрел документацию, согласно которой допустимо что-либо между 192×48 и 500×500. И тот же «SetPreferredMinSize (новый размер (360, 400))» используется для события Onlaunched приложения, которое ограничивает дальнейшее изменение размера приложения. Я хочу добиться того же для режима компактного наложения