WPF Привязывает ширину кадра к ширине основного окна таким образом, чтобы, если содержимое кадра имеет небольшую ширину, основное окно изменило бы его размер

#c# #wpf #xaml #user-interface #binding

Вопрос:

У меня есть следующий код MainWindow , и у меня есть несколько страниц разного размера, и в зависимости от конкретной привязки страница становится содержимым MainFrame .

 <Window
x:Class="UnrealScripts.Core.Owner.MainWindow"
x:Name="AppWindow"
Width="{Binding ActualWidth,ElementName=MainFrame}" 
//if content in MainFrame has width of 300, MainWindow should change its width to 300, instead of stretching MainFrame content.
>
   <Frame
            x:Name="MainFrame"
        VerticalContentAlignment="Center"
        HorizontalContentAlignment="Center"
            NavigationUIVisibility="Hidden"
            Content="{Binding CurrentPage, Converter={local:MainWindowValueConvertor}}"
    />
 

Но проблема в том, что: предположим,
MainWindow Width = 900
Page1 Width = 300
Page2 Width = 800

Что я имел в виду , так это то, что когда Page1 устанавливается как MainFrame content , MainWindow сжимается до ширины 300, а когда Page2 содержимое, основное окно расширяется до ширины 800.

Любые предложения помогут, спасибо.

Комментарии:

1. Если вы использовали элементы управления пользователями в качестве содержимого окна, а не фрейма, и вместо этого сделали свои страницы элементами управления пользователями. Затем вы можете просто изменить размер окна на содержимое.