2015-08-30 2 views
2

J'utilise un InkCanvas dans mon projet et j'ai remarqué que chaque fois que je dessine quelque chose, le trait est très net, et une fois que je relâche le bouton de la souris, il devient flou.WPF InkCanvas: comment désactiver l'anti-crénelage

Y at-il un moyen de garder le trait identique à celui que je dessine?

En ce moment je vais à travers le tableau que je reçois de l'image et je supprime tout pixel qui ne correspond pas parfaitement Color.Red (c'est-à-dire, ARGB: 255,255,0,0) ... et je suis sûr qu'il y a une façon plus intelligente de le faire!

Merci d'avance.

Répondre

1

Ok. J'ai trouvé une réponse!

Sources:

  1. https://social.msdn.microsoft.com/Forums/vstudio/en-US/d95c6b91-2a68-455b-b9d4-021bd5c96029/how-to-disable-smoothing-for-stroke-?forum=wpf
  2. Rendering sharp lines in WPF

Je viens d'essayer d'ajouter RenderOptions.EdgeMode="Aliased" directement dans XAML (la propriété ne se présente pas dans la fenêtre Propriétés, lors de la sélection des InkCanvas) et il fonctionne. Au fond de cette:

<InkCanvas x:Name="myInkCanvas" MoveEnabled="False" ...> 

Pour:

<InkCanvas x:Name="myInkCanvas" MoveEnabled="False" RenderOptions.EdgeMode = "Aliased" ...> 

Sur MouseUp, la course Stille "se déplace" un peu, mais la course elle-même est tout à fait pointu!