Заморозить визуальную кисть? или есть идея получше? - PullRequest
3 голосов
/ 12 января 2011

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

RenderTargetBitmap renderer = new RenderTargetBitmap(WIDTH, HEIGHT, dpiX, dpiY,   PixelFormats.Pbgra32);
renderer.Render(vbox);
renderer.Freeze();

"vbox" - это мой UIElement, он создается в фоновом потоке иМне нужно отрендерить его в растровое изображение, чтобы показать его в основном потоке пользовательского интерфейса.Я не буду использовать «vbox» после завершения рендеринга в растровое изображение.

Эти коды работали, но потом я обнаружил, что не удовлетворен им, потому что это выглядело плохо, если я увеличил размер большого пальца.

Я надеюсь, что смогу использовать что-то вроде векторной графики, поэтому я попытался сделать это следующим образом:

        var visualBrush = new VisualBrush(vbox);
        visualBrush.Stretch = Stretch.Uniform;
        visualBrush.Freeze();

Конечно, это не сработало, потому что я не мог заморозить визуальную кистьс его свойством Visual присваивается любое значение, кроме Null.

Кто-нибудь может мне помочь?Большое спасибо.

ура

Алекс

1 Ответ

0 голосов
/ 08 ноября 2011

Вы можете использовать (де) сериализацию для создания отдельной копии VisualBrush. См этот ответ

...