3 votes

L'arborescence ne s'étire pas

J'ai une application simple avec un Treeview et une zone de contenu principal dans une grille. La grille dispose d'un gridsplitter pour redimensionner, mais celui-ci ne redimensionne pas le Treeview.

enter image description here

J'ai lu que c'était un bug,

mais quel est le moyen le plus simple de redimensionner le Treeview ?

<Window x:Class="TestGridSplitter.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="auto"/>
        <ColumnDefinition Width="5"/>
        <ColumnDefinition />                              
    </Grid.ColumnDefinitions>
    <TreeView Grid.Column="0">
        <TreeViewItem>
            My Treeview
        </TreeViewItem>
    </TreeView>
    <GridSplitter Grid.Column="1" Width="5"/>
    <TextBlock Grid.Column="2">
        Main Content Area
    </TextBlock>
</Grid>

Le réglage de l'alignement horizontal ou de l'alignement du contenu sur Stretch ne fonctionne pas !

3voto

StepUp Points 246

De plus, il est nécessaire de définir d'autres propriétés de l'interface utilisateur. GridSplitter comme ResizeDirection="Columns" y ResizeBehavior="PreviousAndNext" propriétés. Par exemple :

<GridSplitter Grid.Column="1" Width="5" ResizeDirection="Columns"  
                                 ResizeBehavior="PreviousAndNext"/>

1voto

Noam M Points 2774

Essayez l'approche suivante :

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>

    <StackPanel Grid.Column="0" Background="#feca00">
        <TextBlock FontSize="35" Foreground="#58290A" TextWrapping="Wrap">
          Left Hand Side
        </TextBlock>
    </StackPanel>

    <GridSplitter Width="4" Grid.Column="1" Background="Red" VerticalAlignment="Stretch" HorizontalAlignment="Center"/>

    <Border Grid.Column="2" BorderBrush="#58290A" BorderThickness="5" CornerRadius="10">
        <TextBlock FontSize="25" Foreground="#FECA00" TextWrapping="Wrap">
          Right Hand Side
        </TextBlock>
    </Border>

</Grid>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X