2010-10-21 9 views
2

J'utilise WPF avec une feuille de style. Dans mon Style, j'ai essayé de personnaliser l'aspect de la bordure de mise au point en pointillé pour un CheckBox. J'ai besoin de la bordure de mise au point pour ne dessiner que le carré et non le contrôle entier.WPF Style de case à cocher rendant la frontière de mise au point se comporte étrangement

Je règle ma largeur de style à 15 et la bordure en pointillés est correcte, mais n'entoure pas le carré, c'est sur le côté.

J'ai inclus le style.

merci pour l'aide.

style fragment de feuille:

<Setter Property="Control.Template"> 
    <Setter.Value> 
     <ControlTemplate> 
      <Rectangle StrokeThickness="1" Stroke="Black" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 

Répondre

1

n'a pas beaucoup changé mais je pense qu'il semble ok

<Style x:Key="MyFocusVisual"> 
    <Setter Property="Control.Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Rectangle StrokeThickness="1" Margin="-1,1,-1,1" Stroke="Black" HorizontalAlignment="Left" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Canvas> 
    <CheckBox Canvas.Left="100" Canvas.Top="100" TabIndex="0" Content="Content1" FocusVisualStyle="{DynamicResource MyFocusVisual}"/> 
    <CheckBox Canvas.Left="100" Canvas.Top="120" TabIndex="1" Content="Content2" FocusVisualStyle="{DynamicResource MyFocusVisual}"/> 
</Canvas> 
+0

Merci pour l'aide !! – SetiSeeker

+0

Vous êtes les bienvenus :) –

0

Utilisez Blend ou XamlWriter en utilisant un techniques shown here le la pour obtenir le ControlTemplate d'un CheckBox. Regardez comment et où le "carré" est défini - Je suis sûr que vous verrez qu'il a une marge et/ou un rembourrage et/ou un autre formatage appliqué à celui-ci. À ce stade, vous pouvez utiliser cette information pour implémenter votre style. Il n'est pas clair à partir de votre extrait si vous implémentez réellement le ControlTemplate de CheckBox, mais cela peut être plus facile. Oh, et FYI-in WPF, ils sont appelés ResourceDictionaries, et non des feuilles de style.

Questions connexes