2015-08-30 4 views
2

Я использую InkCanvas в своем проекте, и я заметил, что всякий раз, когда я рисую что-то, удар очень острый, и как только я отпущу кнопку мыши, он становится размытым.WPF InkCanvas: как отключить сглаживание

Есть ли способ, которым я могу держать ход идентичным тому, как он выглядит, как я его рисую?

Прямо сейчас я просматриваю массив, который я получаю с изображения, и я удаляю любой пиксель, который не идеально соответствует Color.Red (т. Е. ARGB: 255,255,0,0) ... и я конечно, есть более умный способ сделать это!

Заранее спасибо.

ответ

1

Хорошо. Я нашел ответ!

Источники:

  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

Я просто попытался добавить RenderOptions.EdgeMode="Aliased" непосредственно в XAML (свойство не отображается в окне свойств при выборе InkCanvas) и это работает. В основном от этого:

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

To:

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

На MouseUp, ход Stille "движется" немного, но сам ход совершенно острый!