2

私はItemsControlWPFでウィンドウ内を使用しています。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

ScrollViewerItemsControlでラップする

更新:あなたの例では、正しくスケーリングされない場合は、行の高さも * に設定してください。

于 2011-03-22T16:23:51.963 に答える
2

@Basの回答に加えて、プロパティMaxHeightMinHeightプロパティをウィンドウの寸法に設定してください。例にあるハードコードされた番号を使用するか、 へのバインディングを作成できますWindow.ActualHeight/ActualWidth

于 2011-03-22T16:48:07.190 に答える