首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HierarchicalDataTemplate和GridSplitter

HierarchicalDataTemplate和GridSplitter
EN

Stack Overflow用户
提问于 2016-12-04 21:19:15
回答 1查看 339关注 0票数 0

TreeView的HierarchicalDataTemplate似乎不能很好地应用于GridSplitter。我不太清楚真正的问题在哪里,但我怀疑ScrollViewer

当前行为: TreeView只根据其项调整其与。当更宽的项展开时,TreeView就会增长。它不能被网格拆分器缩小或放大。HorizontalAlignment=Stretch和ScrollViewer属性似乎不影响这一点。

预期行为: TreeView将宽度调整到GridSplitter,并在太小时显示水平滚动条。

正如屏幕截图所显示的那样,TreeView保持其项的最小宽度,并且不与GridSplitter对齐。

代码语言:javascript
运行
复制
<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>
EN

Stack Overflow用户

回答已采纳

发布于 2016-12-05 07:01:26

问题是ResizeBehavior of GridSplitter。可以通过ResizeBehavior="PreviousAndNext"实现预期的行为

代码语言:javascript
运行
复制
<GridSplitter Grid.Column="1" ResizeBehavior="PreviousAndNext" Width="4"/>
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40963780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档