2

ItemsControl在 WPF 中使用内部窗口。itemscontrol 与集合绑定,集合是一组视图模型(用户控件)。我的问题 - 由于集合中有许多视图模型,视图超出了当前窗口。我尝试了很多东西来用滚动条处理它,但没有用。有什么建议么?问题实际上是如何在窗口中包含项目控件(滚动)?

下面的 XAML

<Window x:Class="WpfApplicationTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:app="clr-namespace:WpfApplicationTest"
    Title="MainWindow" Height="350" Width="525">   
  <Grid Height="Auto">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="30"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <ItemsControl Grid.Row="0" Grid.Column="0" ItemsSource="{Binding UserControlCollection}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>           
    <StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Bottom">
        <Button Content="OK" Width="100" Margin="3" />
        <Button Content="Cancel" Width="100" Margin="3" />
    </StackPanel>
</Grid>

4

2 回答 2

6

ItemsControlScrollViewer包裹你

更新:在您的示例中,如果无法正确缩放,还将行高设置为 *。

于 2011-03-22T16:23:51.963 回答
2

除了@Bas 的答案,将您的MaxHeightMinHeight属性设置为您的窗口尺寸。您可以使用示例中的硬编码数字,也可以创建与Window.ActualHeight/ActualWidth.

于 2011-03-22T16:48:07.190 回答