Как улучшить качество Silverlight WritableBitmap при замене UIElements для анимации

Я делаю анимацию, в которой я временно уменьшаю видимость UIElement и накладываю WritableBitmap версии оригинала Image.

Моя проблема заключается в том, что когда я делаю это для элемента с текстом, это приводит к заметному размытию и более темному изображению, что означает, что переключение с UIElement на Image заметно.

Кто-нибудь сталкивался с этим и/или знает, как решить эту проблему?


person Stephen Ellis    schedule 06.06.2010    source источник


Ответы (2)


Для стандартного рендеринга текста Silverlight использует ClearType. К сожалению, ClearType нельзя использовать для рендеринга текста в WritableBitmap. Вот почему вы видите разницу в качестве текста в вашем сценарии. Кстати, установка для CacheMode значения BitmapCache или использование пиксельных шейдеров также отключит ClearType (см. http://forums.silverlight.net/forums/p/109627/247959.aspx)

Поскольку качество текста, отображаемого в WritableBitmap, не может быть улучшено, единственное решение, которое я могу придумать, — это уменьшить качество рендеринга текста вашего пользовательского интерфейса с помощью одного из методов, упомянутых выше.

person Denis    schedule 07.06.2010
comment
OK. Я так и подозревал. Спасибо. - person Stephen Ellis; 07.06.2010

Думали ли вы о добавлении

<param name="EnableGPUAcceleration" value="true" />

к подключаемому тегу объекта и

<xxxxx CacheMode="BitmapCache">

....

</xxxxx>

Где xxxxx — это элемент, который вы в противном случае покрыли бы WritableBitmap. При таком подходе, возможно, WritableBitmap вообще не понадобится.

person AnthonyWJones    schedule 06.06.2010