как сгладить WPF TreeView - PullRequest
       17

как сгладить WPF TreeView

5 голосов
/ 27 сентября 2011

Мне нужен элемент управления, который ведет себя как древовидное представление (привязывается к древовидной структуре, расширяет дочерние узлы на основе свойства IsExpanded связанного объекта), но отображает данные, такие как сетка (без отступа или переключения изображений).

Развертывание будет происходить автоматически на основе связанного объекта.

TreeView идеально подходит, мне просто нужно удалить отступ и изображение треугольника, чтобы сделать его вертикально плоским, как столбец сетки.

Полагаю, я мог бы попытаться переопределить шаблон TreeViewItem, но он просто ничего не отображает ..

Ответы [ 2 ]

2 голосов
/ 27 сентября 2011

Вам нужен TreeListView (он прекрасно сочетает TreeView и ListView на уровне шаблона TreeViewItem)

http://msdn.microsoft.com/en-us/library/ms771523.aspx

2 голосов
/ 27 сентября 2011

На основе стиля TreeView в MSDN должно работать что-то подобное:

<Style TargetType="TreeViewItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TreeViewItem">
                <StackPanel>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="ExpansionStates">
                            <VisualState x:Name="Expanded">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames
                                        Storyboard.TargetProperty="(UIElement.Visibility)"
                                        Storyboard.TargetName="ItemsHost">
                                        <DiscreteObjectKeyFrame KeyTime="0"
                                            Value="{x:Static Visibility.Visible}" />
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Collapsed" />
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <ContentPresenter ContentSource="Header" />
                    <ItemsPresenter Name="ItemsHost" Visibility="Collapsed" />
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...