私のアプリケーションでは、Window
. 左側のメニュー、ヘッダー、およびコンテンツの場所が含まれています。
このコンテンツは動的にロードされています -UserControl
そこに a が置かれています。これらUserControls
は様々です。単なるTextBlock
ページから非常に複雑なページまで。すべてのコンテンツが確実に表示されるようにするには、ScrollViewer
(つまり、MyWindow.xaml で) ラップする必要があります。コンテンツに a を入れる必要があるまで、すべて正常に機能ListView
します。
多かれ少なかれ、コードは次のようになります。
<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で私が欲しい:
- ボタンは常に一番下にあります
- 左のスペース全体を埋めるためのリストボックス(ウィンドウに合わせてサイズも変更します)
- リストボックスの高さのハードコーディングを避ける
それは可能ですか?