Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / treeView без отступов вправо для дочерних элементов / 6 сообщений из 6, страница 1 из 1
14.11.2014, 11:31
    #38805962
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
Добрый день.
По умолчанию treeView имеет такой вид. Как мне убрать отступ помеченный красной стрелкой?
В ControlTemplate я вижу возможность изменить все что угодно кроме этого)


Спасибо
...
Рейтинг: 0 / 0
14.11.2014, 14:18
    #38806360
Ilya81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
В крайнем случае всегда можно передвинуть элемент через свойство Margin.
...
Рейтинг: 0 / 0
14.11.2014, 14:56
    #38806433
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
Ilya81,

так я и сделал, но хотелось бы разобраться где задается разметка
...
Рейтинг: 0 / 0
14.11.2014, 15:17
    #38806474
Ilya81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
Задаётся всякими PresentationFramework.Aero, надо полагать. Если нужно, посмотрите UI designer'ом в Visual Studio (если 2012+) или Blend'ом, что там за Template по умолчанию. Кнопка сворачивания/разворачивания (насколько помню) вообще задаётся в фиксированных WPF unit'ах. Или в чём тогда вопрос?
...
Рейтинг: 0 / 0
14.11.2014, 15:51
    #38806540
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
Ilya81,

Все это я изучил(видимо недостаточно) но не увидел где это задается
...
Рейтинг: 0 / 0
15.11.2014, 14:35
    #38807050
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
treeView без отступов вправо для дочерних элементов
Che0,

для этого всего лишь нужно переопределить шаблон TreeViewItem
вот простейший пример, все элементы этого дерева находят на одном расстоянии от левой стороны
View:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
        <Style x:Key="TreeViewItemStyle" TargetType="{x:Type TreeViewItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TreeViewItem}">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="24"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                                
                            <ToggleButton Height="16" Width="16" 
                                          Grid.Column="0" Grid.Row="0"
                                          IsChecked="{TemplateBinding IsExpanded}" />
                            <ContentPresenter x:Name="PART_Header"
                                              ContentSource="Header"
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                              Grid.Column="1"  Grid.Row="0"/>
                            <ItemsPresenter x:Name="ItemsHost" 
                                            Grid.Column="0" Grid.ColumnSpan="2"  Grid.Row="1"
                                            Visibility="Collapsed"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsExpanded" Value="True">
                                <Setter TargetName="ItemsHost" Property="Visibility" Value="Visible"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style x:Key="TreeViewStyle" TargetType="{x:Type TreeView}">
            <Setter Property="ItemContainerStyle" Value="{StaticResource ResourceKey=TreeViewItemStyle}"/>
        </Style>
    </Window.Resources>
    <TreeView Style="{StaticResource TreeViewStyle}"
              ItemsSource="{Binding Root}">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="{x:Type wpfApplication1:Person}"
                                      ItemsSource="{Binding Children}">
                <TextBlock Text="{Binding Name}"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>



ViewModel:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
    public class Person
    {
        public Person()
        {
            Children = new List<Person>();
        }
        public string Name { set; get; }
        public List<Person> Children { set; get; }
        
    }

    public class ViewModel : INotifyPropertyChanged
    {
        public ViewModel()
        {
            Root = new List<Person>
            {
                new Person
                {
                    Name = "Roman",
                    Children = {new Person {Name = "Olga"} , new Person { Name="Sofia"} }
                },
                new Person
                {
                    Name = "Anatoliy",
                    Children = { new Person { Name = "Ivan"}, new Person {Name = "Alexey"}}

                }
            };

        }
        public List<Person> Root { set; get; }
   }
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / treeView без отступов вправо для дочерних элементов / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]