c# – WPF树视图,如何更改缩进

c# – WPF树视图,如何更改缩进,第1张

概述我的Treeview基本上有“文件夹”节点,并且在不包含其他项目的项目下面一级. 因此,不需要用于展开/折叠图标的空间(在级别2上).我可以放弃这个图标空间,从而减少凹痕.项目(在示例“机场”中)应向左移动一些像素. 重要:基本上寻找代码解决方案(C#),而不是XAML版本. 您真正想要做的是编辑HierarchicalDataTemplate并更改其行为方式.下面的页面,有一个很好的高级视图编辑 我的TreevIEw基本上有“文件夹”节点,并且在不包含其他项目的项目下面一级.

因此,不需要用于展开/折叠图标的空间(在级别2上).我可以放弃这个图标空间,从而减少凹痕.项目(在示例“机场”中)应向左移动一些像素.

重要:基本上寻找代码解决方案(C#),而不是XAML版本.

解决方法 您真正想要做的是编辑HIErarchicalDataTemplate并更改其行为方式.下面的页面,有一个很好的高级视图编辑 Hierarchical Data Template.

我也发现this one开始时非常好.虽然这两个页面都没有明确说明要做什么,但实质上是在更改项目演示者中的布局属性.

编辑

哎呀,我错了.不是HIErarchicalDataTemplate,而是TreeVIEwItem模板.

请参阅下面的示例.如果您知道不会有任何第三级节点,这只是最简单的方法.

特别注意名为ItemsHost的ItemsPresenter元素.它的边际为-12,0.这意味着它的左边距是负的,因此从左边的方向溢出包含它的网格列.因此,所有子节点都会向左拉一点.如果将来有三级节点,它们也会被拉到左侧.如果您不想这样,那么您将不得不为不同级别的节点提供不同的模板.但这超出了这个答案的范围.

<Style x:Key="TreeVIEwItemStyle1" targettype="{x:Type TreeVIEwItem}">    <Setter Property="Template">        <Setter.Value>            <ControlTemplate targettype="{x:Type TreeVIEwItem}">                <GrID>                    <GrID.ColumnDeFinitions>                        <ColumnDeFinition MinWIDth="19" WIDth="auto"/>                        <ColumnDeFinition WIDth="auto"/>                        <ColumnDeFinition WIDth="*"/>                    </GrID.ColumnDeFinitions>                    <GrID.RowDeFinitions>                        <RowDeFinition Height="auto"/>                        <RowDeFinition/>                    </GrID.RowDeFinitions>                    <Togglebutton x:name="Expander" ClickMode="Press" IsChecked="{Binding IsExpanded,relativeSource={relativeSource TemplatedParent}}" Style="{StaticResource ExpandCollapsetoggleStyle}"/>                    <border x:name="Bd" borderBrush="{TemplateBinding borderBrush}" borderThickness="{TemplateBinding borderThickness}" Background="{TemplateBinding Background}" GrID.Column="1" padding="{TemplateBinding padding}" SnapsToDevicePixels="true">                        <ContentPresenter x:name="PART_header" ContentSource="header" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>                    </border>                    <ItemsPresenter x:name="ItemsHost" GrID.ColumnSpan="2" GrID.Column="1" GrID.Row="1" margin="-12,0"/>                </GrID>                <ControlTemplate.Triggers>                    <Trigger Property="IsExpanded" Value="false">                        <Setter Property="Visibility" Targetname="ItemsHost" Value="Collapsed"/>                    </Trigger>                    <Trigger Property="HasItems" Value="false">                        <Setter Property="Visibility" Targetname="Expander" Value="HIDden"/>                    </Trigger>                    <Trigger Property="IsSelected" Value="true">                        <Setter Property="Background" Targetname="Bd" Value="{DynamicResource {x:Static Systemcolors.HighlightBrushKey}}"/>                        <Setter Property="Foreground" Value="{DynamicResource {x:Static Systemcolors.HighlightTextBrushKey}}"/>                    </Trigger>                    <MultiTrigger>                        <MultiTrigger.Conditions>                            <Condition Property="IsSelected" Value="true"/>                            <Condition Property="IsSelectionActive" Value="false"/>                        </MultiTrigger.Conditions>                        <Setter Property="Background" Targetname="Bd" Value="{DynamicResource {x:Static Systemcolors.ControlBrushKey}}"/>                        <Setter Property="Foreground" Value="{DynamicResource {x:Static Systemcolors.ControlTextBrushKey}}"/>                    </MultiTrigger>                    <Trigger Property="IsEnabled" Value="false">                        <Setter Property="Foreground" Value="{DynamicResource {x:Static Systemcolors.GrayTextBrushKey}}"/>                    </Trigger>                </ControlTemplate.Triggers>            </ControlTemplate>        </Setter.Value>    </Setter>    <Style.Triggers>        <Trigger Property="VirtualizingStackPanel.IsVirtualizing" Value="true">            <Setter Property="ItemsPanel">                <Setter.Value>                    <ItemsPanelTemplate>                        <VirtualizingStackPanel/>                    </ItemsPanelTemplate>                </Setter.Value>            </Setter>        </Trigger>    </Style.Triggers></Style>
总结

以上是内存溢出为你收集整理的c# – WPF树视图,如何更改缩进全部内容,希望文章能够帮你解决c# – WPF树视图,如何更改缩进所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存