2012-04-14 4 views
3

Я хотел бы дать пользователю возможность изменять размер узла TreeView, перетащив его границу, так же, как вы изменили бы размер окна.Разрешить пользователю изменять размер узла WPF TreeView путем перетаскивания

Какой контроль следует помещать внутри шаблона TreeNode, чтобы сделать это возможным?

Или, если такого контроля нет, что является лучшим способом для этого?

ответ

4

Я играл с GridSpliter и напомнил о своем вопросе. Вот еще один способ сделать это, более легкий способ, без сторонних элементов управления, кроме того, всегда приятно иметь опции :) Это всего лишь образец, который дает вам представление о сплиттере сетки:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition x:Name="Column1" Width="35*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition x:Name="Column2" Width="65*"/> 
    </Grid.ColumnDefinitions> 
    <Border BorderBrush="Gray" BorderThickness="1" Margin="2"> 
     <TextBlock>your treeview</TextBlock> 
    </Border> 
    <GridSplitter Width="2" ResizeBehavior="PreviousAndNext" Grid.Column="1"/> 
    <Border BorderBrush="Gray" BorderThickness="1" Grid.Column="2" Margin="2"/> 
</Grid> 
1

вы можете использовать avalon docking lib. Это бесплатно и очень легко настроить. Есть несколько сообщений даже здесь (при переполнении стека). Но в основном вы можете просто привязать древовидную структуру в сторону, установить некоторые свойства, не позволяющие плавать или закрываться, и вам хорошо идти.

обзора/учебник http://avalondock.codeplex.com/documentation

загрузки 1,3: http://avalondock.codeplex.com/releases/view/48794