2009-05-12 8 views
0

J'essaie de réduire la quantité d'espace entre les éléments TreeView pour les ajuster plus verticalement. Je suppose qu'il s'agit de styler le modèle ItemContainer Style ou ItemContainer dans TreeView, mais je n'arrive pas à obtenir les propriétés correctes. Est-ce que quelqu'un peut-il me montrer la bonne direction?Silverlight - Espace au-dessus/au-dessous de TreeView items

Répondre

2

Vous avez raison, vous devez modifier le ItemContainerStyle du contrôle TreeView.

Tous les conteneurs dans le modèle de contrôle par défaut du style TreeViewItem sont définis sur "auto" et s'étendent pour consommer autant d'espace vertical requis par le contenu de l'élément.

Vous pouvez forcer cela en faisant l'une des deux choses:

  1. Réduire la taille du contenu de chaque élément en modifiant ItemTemplate
  2. du TreeView Inverser la marge sur la grille à l'intérieur du contrôle par défaut du TreeViewItem modèle.

Voici un extrait d'un nouveau modèle de contrôle que j'ai créé pour TreeViewItem. Remarquez comment je définis la marge comme étant "0, -4,0, -4". Cela indique au contenu de prendre 4 pixels de moins en haut et en bas de l'objet, réduisant ainsi l'espace vertical de chaque objet.

<ControlTemplate TargetType="controls:TreeViewItem"> 
    <Grid Background="{x:Null}" Margin="0,-4,0,-4"> 
     ... 
+0

Merci beaucoup. Cela m'a mis dans le stade. –

+0

Les solutions les plus simples sont toujours les meilleures ... merci. – NestorArturo

+0

cette réponse est incorrecte (au moins dans Silverlight 5 TreeView). Parce que les éléments commencent à se chevaucher lorsque vous descendez dans les niveaux. Au niveau 3, l'élément passe déjà sous le niveau 2 suivant ... –