112 votes

Comment puis-je mettre une bordure sur ma grille dans WPF?

Comment mettre une bordure sur ma grille en C # / WPF?

C’est ce que je voudrais que ce soit, mais met une bordure autour du tout au lieu du contrôle de grille que je mets dans mon application.

 <Grid>
    <Border BorderBrush="Black" BorderThickness="2">
        <Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" />
    </Border>
... and so on ...
 

201voto

Reed Copsey Points 315315

Si vous voulez juste une bordure extérieure, le moyen le plus simple est de la placer dans un contrôle Bordure:

 <Border BorderBrush="Black" BorderThickness="2">
    <Grid>
       <!-- Grid contents here -->
    </Grid>
</Border>
 

Modifier:

La raison pour laquelle vous voyez que la bordure remplit complètement votre contrôle est que, par défaut, HorizontalAlignment et VerticalAlignment sont définis sur Stretch. Essayez ce qui suit:

 <Grid>
    <Border  HorizontalAlignment="Left" VerticalAlignment="Top"  BorderBrush="Black" BorderThickness="2">
        <Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" />
    </Border>
</Grid>
 

Cela devrait vous donner ce que vous cherchez (bien que vous souhaitiez peut-être laisser une marge sur les 4 côtés, pas seulement 2 ...)

8voto

Muad'Dib Points 14260

Si imbriquer votre grille dans un contrôle de frontière

 <Border>
    <Grid>
    </Grid>
</Border>
 

ne fait pas ce que vous voulez, vous devrez alors créer votre propre modèle de contrôle pour la grille (ou la bordure) qui FAIT ce que vous voulez.

2voto

surega Points 107

Je pense que votre problème est que la marge doit être spécifiée dans l'étiquette de bordure et non dans la grille.

1voto

user3333933 Points 11
 <Grid x:Name="outerGrid">
    <Grid x:Name="innerGrid">
        <Border BorderBrush="#FF179AC8" BorderThickness="2" />
        <other stuff></other stuff>
        <other stuff></other stuff>
    </Grid>
</Grid>
 

Ce code Enveloppe une bordure à l'intérieur de la "innerGrid"

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