2017-07-21 1 views
0

Je contrôle la ligne dans mon interface utilisateur. Si Sélectionnez cette ligne dans le cas Il devrait être focalisé et Focus Visual Style serait appliqué. J'ai essayé le code ci-dessous, mais il ne fonctionne pas. Que la façon dont j'essaye est bonne ou mauvaise?Comment définir le style visuel de mise au point sur une ligne dans WPF

code:

<Line x:Name="line" X1="50" Y1="20" X2="90" Y2="50" Stroke="Red" Fill="Bisque" StrokeThickness="5" FocusVisualStyle="{DynamicResource MyFocusVisualStyle}" Focusable="True" /> 

Guidez-moi Veuillez à ce sujet.

Merci.

+0

'FocusVisualStyle' est obtenu quand il est invoqué via' Keyboard'. Si vous souhaitez définir 'Focus' sur une ligne via' Mouse', cliquez sur, vous pouvez simplement utiliser l'événement 'MouseUp' &' MouseDown' pour la ligne et définir sa couleur 'Stroke' sur quelque chose que vous voulez afficher en tant que _selected_ –

+0

Merci pour l'information. Existe-t-il d'autres façons d'ajouter une bordure autour de la ligne lors de la sélection? Je veux dire d'autres propriétés comme FocusVisualStyle? – user3610920

+0

Désolé je n'ai jamais mis en place une bordure autour d'une ligne, je fais principalement ce que j'ai mentionné dans le commentaire. Plus pour montrer la sélection J'utiliserais également la propriété 'StrokeDashArray', qui fonctionne très bien pour moi –

Répondre

0

Vous ne savez pas ce qu'il y a dans MyFocusVisualStyle et où il se trouve, mais l'exemple suivant pourrait vous donner une tête haute. Assurez-vous également de naviguer jusqu'à la ligne en appuyant sur la touche de tabulation du clavier pour attirer l'attention. Le code suivant dessinera un polygone autour de la ligne en fonction des coordonnées de la ligne.

<Line x:Name="line" X1="50" Y1="20" X2="200" Y2="50" Stroke="Red" Fill="Bisque" StrokeThickness="5" Focusable="True" > 
    <Line.FocusVisualStyle> 
     <Style> 
      <Setter Property="Control.Template"> 
       <Setter.Value> 
        <ControlTemplate> 
         <Polygon Points="49 22 200 52 200 49 49 18" Stroke="Green" StrokeThickness="1" StrokeDashArray="1 2" /> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Line.FocusVisualStyle> 
</Line>