1
我在ScrollViewer中有一些控件組。我需要這個控件之一來凍結垂直滾動。我該怎麼做呢?垂直滾動時的凍結控制
我在ScrollViewer中有一些控件組。我需要這個控件之一來凍結垂直滾動。我該怎麼做呢?垂直滾動時的凍結控制
通過一些創造性的使用ListView,你可以達到預期的效果。您可能還需要調整一些ListView模板以避免某些ListView特定的行爲。
<ListView ScrollViewer.CanContentScroll="False">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<!-- Header/Frozen content goes here -->
<!-- Using Border as example -->
<Border Width="1000" Height="40">
<Border.Background>
<LinearGradientBrush>
<GradientStop Offset="0" Color="Lime"/>
<GradientStop Offset="1" Color="Black"/>
</LinearGradientBrush>
</Border.Background>
</Border>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListViewItem>
<ListViewItem.Style>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<!-- Other content goes here -->
<!-- Using Border as example -->
<Border Width="1000" Height="1000">
<Border.Background>
<LinearGradientBrush>
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Black"/>
</LinearGradientBrush>
</Border.Background>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListViewItem.Style>
</ListViewItem>
</ListView>
謝謝,但這不起作用。垂直滾動條從不可見。即使是訪問垂直滾動條的工作,也應該首先水平滾動到右側。這對我來說不合適。 – vkrzv 2011-12-27 14:35:48
你是什麼意思凍結? – snurre 2011-12-27 13:55:06
snurre,我的意思是不與其他控件一起滾動。例如在DataGrid列標題不會在垂直滾動時移動。 – vkrzv 2011-12-27 14:00:23
您應該將控件移出ScrollViewer,只保留實際需要在其中滾動的項目。 – snurre 2011-12-27 14:10:35