在我的应用程序中,我有一个Window
. 它包含左侧菜单、标题和内容位置。
这个内容是动态加载的——aUserControl
被放在那里。这些UserControls
是多种多样的。从只是一个TextBlock
非常复杂的页面。为了确保所有内容都可见,我必须用一个ScrollViewer
(我的意思是在 MyWindow.xaml 中)包装它。在我需要ListView
在内容中添加 a 之前,一切正常。
或多或少的代码看起来像这样:
<ScrollViewer> // this is the wrapping viewer actually it's in a different file
<UserControl>
......
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="20*"/>
</Grid.ColumnDefinitions>
<ListView ItemsSource="{Binding Entities}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Style="{StaticResource Value}" Text="{Binding WorkOrderNumber}"/>
<TextBlock Style="{StaticResource Value}" Text="{Binding ActionType}"/>
<TextBlock Style="{StaticResource Value}" Text="{Binding StartDate}"/>
<TextBlock Style="{StaticResource Value}" Text="{Binding StopDate}"/>
<Separator/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Whatever.. Grid.Row="0" Grid.Column="1"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Style="{StaticResource CustomButton}" Content="Previous" />
<Button Style="{StaticResource CustomButton}" Content="Current" />
<Button Style="{StaticResource CustomButton}" Content="Next" />
</StackPanel>
</Grid>
</UserControl>
</ScrollViewer>
结果是列表框没有滚动条并且变高。滚动条仅在窗口的滚动查看器中。
所以在我的 UserControl 我想要:
- 按钮始终位于最底部
- 填充整个剩余空间的列表框(也与窗口一起调整大小)
- 避免硬编码列表框的高度
那可能吗?