Что означает «. =» В сценариях vim?

Класс System.Drawing.Graphics имеет свойство CompositionMode с двумя вариантами: SourceOver (который на основе альфа-компонента смешивает все, что нарисовано с уже фоном Существующий) или SourceCopy, который просто перезаписывает фон тем, что рисуется.

Существует ли что-то подобное в WPF?

В WPF, когда я рисую полилинию, например, поверх другой, новая полилиния всегда смешивается с фоном в алфавитном порядке. Я думаю, это не зависит от используемого контейнера. Я использую Canvas, но нигде не могу найти свойство режима наложения. Я хочу сделать то, что делает упомянутый выше режим композиции SourceCopy. Т.е. новая полилиния должна просто перезаписать все, что уже есть на холсте.

Есть простой способ сделать это, за исключением использования пиксельных шейдеров (которые, насколько я понимаю, в любом случае не будут работать, потому что у меня нет доступа к бэкбуферу Canvas).

Я не застрял в Canvas и был бы рад использовать любой контейнер который поддерживает режим перезаписи.

В настоящее время у меня есть решение, основанное на WriteableBitmap, для которого я получаю контекст System.Drawing.Graphics и затем манипулирую CompositionMode. Это работает, но поскольку мое окно полноэкранное, это решение серьезно влияет на производительность.

Пояснение и пример: Drawing.Graphics, а затем манипулируйте CompositionMode. Это работает, но поскольку мое окно полноэкранное, это решение серьезно снижает производительность.

Пояснение и пример: Drawing.Graphics, а затем манипулируйте CompositionMode. Это работает, но поскольку мое окно полноэкранное, это решение серьезно снижает производительность.

Пояснение и пример: Окно WPF полностью прозрачно, как и холст (цвет фона (0,0,0,0)). Теперь я рисую ломаную линию с помощью Color.FromArgb (128,128,0,0). Теперь у меня есть полупрозрачная красная полилиния. Затем я рисую ту же полилинию с помощью Color.FromArgb (0,0,0,0). Результат тот же, что и раньше, потому что происходит альфа-смешение. Однако я хочу, чтобы красная ломаная линия была удалена со второй ломаной линией (это именно то, что делает режим SourceCopy в классе Graphics.

6
задан Harald 6 February 2011 в 05:58
поделиться