У меня есть следующий xaml, который находится в пользовательском элементе управления wpf -
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="*" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBox
x:Name="MyTxt"
TextWrapping="WrapWithOverflow"
Grid.Row="0"
/>
<ListView
x:Name="MyList"
ItemsSource="{Binding}"
Grid.Row="1"
/>
<Label
Grid.Row="2"
/>
</Grid>
Этот элемент управления вложен в сетку в представлении. Я хотел бы, чтобы текстовое поле было заданной высотой в верхней части сетки, а метка внизу отображается в виде фиксированной высоты в нижней части сетки. Я хочу, чтобы представление списка заполнило остальную часть экрана.
Проблема, с которой я сталкиваюсь, состоит в том, что представление списка не имеет правильного размера. Если у меня слишком много записей, которые отображаются в нем, он выходит за пределы окна, и полосы прокрутки недоступны для прокрутки вниз. Поэтому я не могу добраться до нижней части, чтобы увидеть вертикальную полосу прокрутки, если данные растягиваются вправо от экрана.
Мне удалось установить представление списка на фиксированную высоту, и это сработало, но я бы хотел, чтобы оно было более динамичным и по возможности изменяло размер окна.
У кого-нибудь есть какие-нибудь советы, которые могли бы сделать правильный размер?
Спасибо за любые мысли.
РЕДАКТИРОВАТЬ - Вот xaml для сетки в представлении главного окна. это было адаптировано из статьи Джоша Смита здесь
<Grid>
<Border
Style="{StaticResource MainBorderStyle}"
>
<HeaderedContentControl
Content="{Binding Path=Workspaces}"
ContentTemplate="{StaticResource WorkspacesTemplate}"
/>
</Border>
</Grid>
У меня действительно установлены свойства scrollviewer, как указано в некоторых ответах ниже.
Вот таблица данных для рабочей области
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
</DataTemplate>