У меня возникли проблемы с тем, чтобы мой UserControl правильно заполнил/изменил размер с помощью родительского окна. Я пишу приложение WPF с использованием MVVM. Я искал другие ответы, и я не смог понять это.WPF UserControl fill mainwindow
MainWindow.xaml
<Window x:Class="QiXR.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:QiXR.ViewModel"
xmlns:vw="clr-namespace:QiXR.View"
Title="MainWindow">
<Window.Resources>
<DataTemplate DataType="{x:Type vm:XRTestCaseListViewModel}">
<vw:XRTestCaseListView/>
</DataTemplate>
</Window.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding ViewModels}" />
</Grid>
UserControl
<UserControl x:Class="QiXR.View.XRTestCaseListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<UserControl.Resources>
<Style x:Key="DataGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</UserControl.Resources>
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="160"/>
<ColumnDefinition Width="160"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
<RowDefinition Height="45"/>
</Grid.RowDefinitions>
Вот что дисплей выглядит, когда я запускаю его UserControl in MainWindow
Можно ли это сделать в xaml либо UserControl, либо Main Окно? Спасибо
Похоже, как это должно быть. Элементы в ItemsControl имеют размер до своей высоты. Зачем это в ItemsControl? Ожидается ли, что у вас будет несколько разных просмотров? – Will
Когда вы говорите, что вы ожидаете, что место под кнопками будет свернуто, вы имеете в виду, что высота окна должна быть размером элемента управления и кнопок? Или что кнопки должны быть в нижней части окна, и окно остается фиксированным? –
@ Да, я намерен иметь более одного вида (3 специально). Я изменил предложение ItemsPanelTemplate по предложению Рейчел ниже и достигло того поведения, которое я искал. Тем не менее, я не состою в браке с использованием ItemsControl в целом, это просто то, что я нашел в поиске Google. (общее количество здесь нет). Я был бы открыт для предложений по другим способам отображения просмотров :) –