2016-09-28 87 views
0

我想让这个单列DataGrid滚动时,我将鼠标悬停在网格上,并移动鼠标滚轮。在WPF Datagrid中滚动ColumnHeader

<Grid Height ="500" ..... 
<!-- ListCollectionView for sorting --> 
<DataGrid Name="dgTable" Style ="{DynamicResource DataGridStyle1}" 
Grid.Row ="1" Grid.Column ="0" 
VerticalContentAlignment="Stretch" 
ItemsSource="{Binding ItemsLcv}" 
IsSynchronizedWithCurrentItem="True" 
SelectionMode="Single" 
AutoGenerateColumns="False" 
CanUserAddRows="False" 
CanUserSortColumns="True" 
HorizontalAlignment="Center" 
Width="215" Height="500"> 

<DataGrid.Columns> 
<DataGridTextColumn Header="Description" SortMemberPath="descr" 
IsReadOnly="True" 
CanUserSort="True" 
Binding="{Binding Path=descr, Mode=TwoWay, UpdateSourceTrigger=  PropertyChanged}" 
Width ="215"/> 
</DataGrid.Columns> 

这是DataGrid的样式。

<Style x:Key="DataGridStyle1" TargetType="DataGrid"> 
<Setter Property="RowHeaderWidth" Value="0" /> 
    <Setter Property = "ScrollViewer.VerticalScrollBarVisibility" Value="Hidden" /> 
    <Setter Property = "ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" /> 
</Style> 

这是的columnHeader的风格:

<Style TargetType="{x:Type DataGridColumnHeader}"> 
<Setter Property="VerticalContentAlignment" Value="Center" /> 
<Setter Property="Height" Value="35" /> 
<Setter Property="SeparatorBrush" Value="#79858b" /> 
<Setter Property="FontWeight" Value="Black" /> 
<Setter Property="Background" Value ="{DynamicResource Brush1}"/> 
<Setter Property="BorderBrush" Value="#FF60727B"/> 
<Setter Property="BorderThickness" Value="2,0,2,2"></Setter> 
</Style> 

当我放置在数据网格中的ScrollViewer标签内,滚动工作,但的columnHeader disapppeared。我需要保留Columnheader进行排序。
我已阅读关于冷冻行的SO帖子,Frozen rows in WPF DataGrid?。我希望有一个比在ScrollViewer组件上使用很多控件模板更简单的解决方案。先谢谢你。

+0

DataGrid具有自己的滚动功能,可以按照您的需要进行操作。摆脱ScrollViewer,并设置DataGrid的VerticalAlignment =“Stretch”'。不是'VerticalContentAlignment',这是一个不同的属性。 –

+0

这样做。谢谢! – harpagornis

回答

0

DataGrid有自己的滚动,按照你想要的方式工作。

试着摆脱ScrollViewer,并设置DataGrid的VerticalAlignment="Stretch"。不是VerticalContentAlignment,这是一个不同的属性。

XAML布局是一个曲折的小性能的迷宫,都是一样的,除了它们都是不同的。