2010-04-13 9 views
2

C'est une simple questionWPF ComboBox rembourrage

Comment enlever l'espace entre le contenu d'un combobox et la frontière de celui-ci. Par exemple. Si la sélection d'une zone de liste déroulante est "Sélection 1" alors le "S" est dessiné tout en haut à gauche du contrôle ComboBox sans espacement d'espaces entre elle et la partie supérieure gauche du contrôle.

Je l'ai fait

<ComboBox Padding="0"/> 

Même ceci:

<ComboBox.ItemContainerStyle> 
    <Style TargetType="ComboBoxItem"> 
    <Setter Property="Padding" Value="0"/> 
    </Style> 
</ComboBox.ItemContainerStyle> 

Le ComboBox spécifié ci-dessus est dans un GridViewColumn ListView. Peut-être que c'est en train de jouer avec quelque chose.

Cela ne supprime pas le rembourrage. Des idées?

Répondre

2

Vous ne pouvez pas. Au moins, pas avec le modèle par défaut. Tu devrais écrire le tien. Le modèle par défaut comprend ceci:

<DockPanel Margin="2"> 
    <TextBox .../> 
</DockPanel> 

Ce sera une marge codée en dur. A propos du mieux que vous pouvez faire avec le modèle par défaut est d'utiliser un rembourrage négatif pour compenser la marge codée en dur:

<ComboBox Padding="-2"> 
    <ComboBoxItem >Selected</ComboBoxItem> 
</ComboBox> 
2

Dans Expression Blend c'est trivial:

  1. Cliquez droit sur le ComboBox et sélectionnez Edit Control Parts (Template) - Edit A Copy.
  2. Supprimez le Margin="2" à partir du début du modèle.