[英]HierarchicalDataTemplate and GridSplitter
TreeView的HierarchicalDataTemplate
似乎無法與GridSplitter
一起GridSplitter
。 我不確定實際問題在哪里,但是我懷疑ScrollViewer
。
當前行為: TreeView僅根據其項目調整其with。 當更寬的項目擴展時,TreeView會增長。 網格拆分器不能縮小或放大它。 HorizontalAlignment = Stretch和ScrollViewer屬性似乎對此沒有影響。
預期的行為: TreeView調整寬度以適合GridSplitter並在太小時顯示水平滾動條。
如屏幕截圖所示,TreeView保持其項目的最小寬度,並且未與GridSplitter對齊。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="250" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TreeView Name="treMain" BorderThickness="0" ItemsSource="{Binding TreeViewSections}" ScrollViewer.HorizontalScrollBarVisibility="Visible">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:TreeViewEntry}" ItemsSource="{Binding Items}">
<StackPanel Orientation="Horizontal" Margin="5,3">
<Image Margin="0,0,5,0">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{Binding Icon}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="True">
<Setter Property="Source" Value="{qc:Binding '$P.ExpandedIcon == null || $P.Items.Count == 0 ? $P.Icon : $P.ExpandedIcon', P={Binding}}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<TextBlock Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
<EventSetter Event="MouseDoubleClick" Handler="treMain_MouseDoubleClick" />
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
問題是GridSplitter的ResizeBehavior。 可以通過ResizeBehavior="PreviousAndNext"
實現預期的行為
<GridSplitter Grid.Column="1" ResizeBehavior="PreviousAndNext" Width="4"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.