WPF UserControl переполняет родительское окно во время выполнения - PullRequest
1 голос
/ 10 июля 2019

Я настраиваю приложение WPF, в котором у меня есть заголовок с переключателями, которые изменяют вид сетки под ним, изменяя активный UserControl. Я также динамически устанавливаю высоту и ширину моего окна равными 80% высоты окна пользователя. Когда в окне отображается мой пользовательский контроль, пользовательский контроль либо заканчивается заполнением сетки, либо сетка обрезает пользовательский контроль

Я установил динамическую высоту строки и удалил высоту и ширину по умолчанию для usercontrol, но она продолжает обрезаться. Из того, что я понимаю, пользовательский контроль должен просто автоматически заполнять размер сетки.

<Viewbox Stretch="UniformToFill">
<Grid Height="880" Width="960">
        <!--Seperate View Style -->
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition Height="0" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <ContentControl Content="{Binding }" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <ContentControl.Style>
                <Style TargetType="{x:Type ContentControl}">
            double FormatHeight = SystemParameters.PrimaryScreenHeight * .8;
            double FormatWidth = FormatHeight * 1.0909;
            InitializeComponent();

            this.Height = FormatHeight;
            this.Width = FormatWidth;
  <Grid Background="#EFEFEF" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Border x:Name="AlertHelperPanel" Margin="10,10,10,10" Background="White">
            <ListView Name="AlertNotifications" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                      Height="{Binding Path=ActualHeight, ElementName=AlertHelperPanel}" 
                      Width="{Binding Path=ActualWidth, ElementName=AlertHelperPanel}" 
                      ItemsSource="{Binding Alerts}"
                      MouseDoubleClick="details_OnMouseDoubleClick">
                <ListView.View>

1 Ответ

0 голосов
/ 10 июля 2019

Так что, очевидно, эта проблема возникала, потому что пользовательские элементы управления масштабировались, но ожидали определенного соотношения сторон.Когда окно просмотра было удалено, размер окна корректировался без изменения размера элементов управления внутри, указывая мне, что это было связано с изменением размеров пользовательского элемента управления по сравнению с размером окна.Скорректировал мои соотношения сторон в коде CS, чтобы он был правильно подобран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...