2011-09-16 4 views
1

j'ai un ItemsControl qui utilise un Grid comme ItemsPanelTemplate, et définit la Grid.Column et Grid.Row sur la ItemContainerStyle pour positionner les éléments de données dans la grilleComment puis-je obtenir une grille pour dessiner des bordures pour des cellules vides?

est-il un moyen de soit ajouter GridLines à la grille, ou pour remplir les cellules vides avec une bordure?

En ce moment j'ai ShowGridLines ensemble True qui rend les lignes en pointillés, mais je veux des lignes horizontales pour montrer, et je préfère GridLines solides

Screenshot

Il y a une assez grande quantité de XAML, mais voici une capture d'écran de la façon dont mon XAML est aménagé: XAML Layout

+0

Quel outil avez-vous utilisé pour votre mise en page? – AdamBT

+0

@AdamBT [Balsamiz] (https://balsamiq.com/), ils ont une [démo web gratuite] (https://webdemo.balsamiq.com/) que j'utilise habituellement – Rachel

+0

Nice ... merci beaucoup! – AdamBT

Répondre

3

Désolé, styling les lignes de la grille ne peut pas être fait. Atleast pas d'une manière facile. Voir la question suivante pour une explication: How can I change the color of the gridlines of a Grid in WPF?

docs MSDN disent « Seules les lignes en pointillé sont disponibles, car cette propriété est conçue comme un outil de conception pour débogage des problèmes de mise en page et n'est pas destiné à être utilisé dans le code de la qualité de la production. Si vous voulez des lignes à l'intérieur de une grille, donnez un style aux éléments de la grille pour avoir des bordures. "

Edit: Voir le lien suivant: Change Color/Thickness of Grid Lines for WPF Grid Control

Il est un contrôle personnalisé qui dérive de Grid et tire la GridLines dans OnRender. Je l'ai essayé et ça a l'air de bien marcher. Utilisable comme ceci

<controls:GridControl ShowCustomGridLines="True" 
         GridLineBrush="Red" 
         GridLineThickness="1"> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
</controls:GridControl> 
+0

Oui j'ai vu ça. Je commence à penser que je dois créer quelque chose dans l'événement Loaded qui remplit toutes les cellules vides avec une bordure. Ou peut-être superposer deux grilles les unes sur les autres et avoir le haut transparent et le bas être rempli de bordures. – Rachel

+0

Est-ce que vous créez les 'RowDefinitions' et' ColumnDefinitions' dans Xaml ou dans le code en fonction des éléments? –

+0

Dans le code XAML. Chaque "Row" est en fait son propre "Grid" avec 7 colonnes. – Rachel

Questions connexes