首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WriteableBitmap向右添加黑色填充

WriteableBitmap向右添加黑色填充
EN

Stack Overflow用户
提问于 2011-11-16 22:30:41
回答 1查看 233关注 0票数 0

我正在尝试用我的一个Canvas (myPrintingCanvas)做一个Image。但图像的宽度至少是画布的两倍宽,并且创建的额外空间又回来了。如果我在另一个Canavas (LayoutRoot)上试用,它可以正常工作。

我的观察是,在myPrintingCanvas上,ActualWidth始终为0。LayoutRoot具有正确的ActualWidth。不确定这是否与额外的填充有关,并且我在获取myPrintingCanvasActualWidth (使用UpdateLayoutMeasure)时失败。

代码:

代码语言:javascript
复制
//Code to render the content of myPrintingCanvas
...

//Make the WriteableBitmap 
WriteableBitmap myWriteableBitmap = new WriteableBitmap(myPrintingCanvas, null);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-16 23:43:22

你有没有尝试过创建一个固定大小的WriteableBitmap,然后调用它的Render方法来渲染位图?Canvas有一些奇怪的行为,因为它在Silverlight和WPF中使用is an anti-pattern,并且违反了许多布局规则。创建固定大小的WriteableBitmap并对其进行渲染的代码如下所示:

代码语言:javascript
复制
        int width = 640;
        int height = 480;
        WriteableBitmap bmp = new WriteableBitmap(width, height);
        bmp.Render(myPrintingCanvas, null);
        bmp.Invalidate();

这种技术的一个优点是,如果您需要捕获多个图像,您可以重用相同的WriteableBitmap,而不是每次都重新创建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8153272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档