10
votes

WPF: Comment combiner des lignes dans une colonne (alternative aux rangées)?

Y a-t-il un moyen de combiner des lignes dans une colonne spécifique? Par conséquent, pour obtenir quelque chose comme ça (j'utilise actuellement des rangots sur une commande, c'est-à-dire une image, mais y a-t-il une meilleure façon?)

    --------------------
    |---------|--------|
    |---------|--------|
    |---------|--------|
    |---------|--------|
    |---------|--------|
    --------------------


0 commentaires

3 Réponses :


11
votes

Ceci n'est pas possible avec le contrôle Grid . Les rangées passent à travers toutes les colonnes et les colonnes traversent toutes les lignes. Comme vous l'avez trouvé, les rowspan et ColumnSpan vous permettent d'avoir une commande de contrôle plusieurs rangées ou colonnes respectivement.

Une autre solution de contournement potentiel consiste à héberger un Grille dans un autre: xxx


2 commentaires

Merci Kent, mais je suppose que le code de code supplémentaire en vaut la peine? .. Je présume qu'il est préférable de continuer à utiliser ma grille et utilisez simplement des rangées de rangs, etc.?


@Kmark: Ouais, à en juger par votre description, je dirais rowspan est le moyen le plus simple d'atteindre votre objectif.



1
votes

Que diriez-vous de quelque chose comme ceci:

            <StackPanel Orientation="Horizontal">
                <Grid Height="100" Width="50"></Grid>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*" />
                        <RowDefinition Height="*" />
                        <RowDefinition Height="*" />
                        <RowDefinition Height="*" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="150" />
                    </Grid.ColumnDefinitions>
                </Grid>
            </StackPanel>


0 commentaires

0
votes

Essayez d'utiliser le rectangle pour fusionner les 6 lignes.

<Grid>
<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="28" />
    <RowDefinition Height="28" />
    <RowDefinition Height="28" />
    <RowDefinition Height="*" />
    <RowDefinition Height="28" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="124" />
    <ColumnDefinition Width="246*" />
</Grid.ColumnDefinitions>
<Rectangle Grid.RowSpan="6"/>
</Grid>


0 commentaires