2011-01-12 5 views
3

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

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(); 

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

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

веселит

Alex

ответ

0

Вы можете использовать (де) сериализации создать индивидуальную копию визуала. См. this answer