2008-10-09 4 views
2

Voici un style simple pour ListBoxItem, ListBoxItem a un fils Border. Border a une propriété Padding avec la valeur de 8, je veux changer la valeur à 0, lorsque l'élément est sélectionné. Comment puis-je écrire le déclencheur?Dans le style WPF, comment Trigger peut-il accéder à un élément fils de l'élément auquel il est affecté?

<??Style TargetType="{x:Type ListBoxItem}"> 
     <Setter Property="Background" Value="Transparent" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ListBoxItem}" > 
        <Border 
         SnapsToDevicePixels="True" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" 
         Padding = "8" 
         Background="{TemplateBinding Background}"> 
         <ContentPresenter /> 
        </Border> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsSelected" Value="True"> 
          ??<Setter Property="Padding" Value="0" />?? <----How Can I do this? 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    <??/Style> 

Répondre

6

Essayez de donner la frontière un nom (en utilisant, par exemple, x: Name = "Border1") puis en utilisant la propriété TargetName de Setter, comme ceci:

<Setter TargetName="border1" Property="Padding" Value="0" /> 

Je ne sais pas si ce ll travaillera dans un modèle de contrôle comme ça, mais essayez-le.

Questions connexes