我正在使用这个XAML:
<Border x:Name="border1" Grid.Row="1">
<toolkit:HeaderedContentControl Header="HeaderedContentControl" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MaxWidth="{Binding ActualWidth, ElementName=border1}" MaxHeight="{Binding ActualHeight, ElementName=border1}">
<Grid HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="32"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.ColumnSpan="2" Margin="0" MinHeight="75" d:LayoutOverrides="Width, Height" ScrollViewer.VerticalScrollBarVisibility="Auto" Padding="0" ScrollViewer.HorizontalScrollBarVisibility="Auto" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<sdk:DataGrid ItemsSource="{Binding ItemSummaries}">
</sdk:DataGrid>
</ScrollViewer>
<Button res:Strings.Assignment="Content=ItemsView.SaveButtonText" Grid.Row="1" Margin="5" Command="{Binding SaveCommand}" Grid.Column="1" d:LayoutOverrides="GridBox"/>
</Grid>
</toolkit:HeaderedContentControl>
</Border>
我的目标是保持HeaderedContentControl不超过其包含的边框,我已经完成了,但是一旦DataGrid超过其分配的空间,我希望它开始滚动。我已经尝试过这种方法,无论是否有父ScrollViewer组合,Grid都会超出HeaderedContentControl的范围,并且不会出现滚动条。我到底在做什么呢?
答案 0 :(得分:3)
decyclone给出的答案有效。基本上,我将以下内容添加到我的资源字典中,以将HeaderedContentControl的所有实例更改为使用Grid而不是默认的StackPanel:
<ControlTemplate TargetType="HeaderedContentControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ContentControl Content="{TemplateBinding Header}" Grid.Row="0" />
<ContentControl Content="{TemplateBinding Content}" Grid.Row="1" />
</Grid>
</ControlTemplate>
这是在given above链接上找到的代码。