冻结视觉刷?或者更好的主意?

时间:2011-01-12 06:54:58

标签: wpf visualbrush rendertargetbitmap

我想为我的UI创建一个拇指图片分支,我试着这样做:

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

“vbox”是我的UIElement,它是在后台线程中创建的,我需要将它呈现给位图以在主UI线程中显示它。完成将其渲染为位图后,我不会在任何地方使用“vbox”。

这些代码有效但后来我发现我对它不满意,因为如果我放大拇指图片的尺寸看起来很糟糕。

我希望我可以使用像矢量图形这样的东西,所以我试着这样做:

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

当然这没有用,因为我无法冻结视觉画笔,它的视觉属性被分配了除Null之外的任何值。

任何人都可以帮助我吗?非常感谢你。

欢呼声

亚历

1 个答案:

答案 0 :(得分:0)

您可以使用(反)序列化来创建VisualBrush的单个副本。见this answer