Nik*_*wal 5 c# vb.net wpf treeview treelistview
我从这里下载了 TreeListView 。当数据被剪切时,它没有显示水平或垂直滚动条。像这样

所以我把它的 Style 改为
<Style TargetType="{x:Type l:TreeListView}">
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility"
Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility"
Value="Auto" />
<Setter Property="VerticalContentAlignment"
Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type l:TreeListView}">
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<DockPanel>
<GridViewHeaderRowPresenter Columns="{StaticResource gvcc}"
DockPanel.Dock="Top" />
<ScrollViewer x:Name="_tv_scrollviewer_"
Background="{TemplateBinding Background}"
CanContentScroll="False"
Focusable="True"
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}">
<ItemsPresenter />
</ScrollViewer>
</DockPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="VirtualizingStackPanel.IsVirtualizing"
Value="true">
<Setter Property="CanContentScroll"
TargetName="_tv_scrollviewer_"
Value="true" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
垂直滚动条很好。但问题是水平 Scollbar。当数据被水平裁剪,滚动条向右移动时,数据向右移动,但标题保持原位。像这样。

如何解决水平滚动 treeitem 时标题随之移动的问题。我不允许在滚动查看器中放置标题,因为在垂直滚动数据时它们需要可见。
小智 0
我对这种树也有同样的问题,现在通过同步滚动条解决了。我向 GridViewHeaderRowPresenter 添加了一个滚动条,该滚动条水平隐藏并垂直禁用,并且我使用了来自 codeproject 的代码,该代码已经实现了滚动条的同步化。
<DockPanel>
<ScrollViewer DockPanel.Dock="Top" HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility ="Disabled"
controls:ScrollSynchronizer.ScrollGroup="Group1">
<GridViewHeaderRowPresenter Columns="{StaticResource gvcc}"/>
</ScrollViewer>
<ScrollViewer
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
controls:ScrollSynchronizer.ScrollGroup="Group1">
<ItemsPresenter />
</ScrollViewer>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
链接到库http://www.codeproject.com/Tips/564665/Synchronize-Two-Scroll-Viewers-in-WPF 和库的原始文章http://www.codeproject.com/Articles/39244/滚动同步。
| 归档时间: |
|
| 查看次数: |
3597 次 |
| 最近记录: |