加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WP7用MVVM将StrokeCollection转换为PNG?

发布时间:2020-12-15 21:20:25 所属栏目:百科 来源:网络整理
导读:我有一个InkPresenter绑定到我用于签名面板的MVVM模型中的StrokeCollection.在我将数据发送回服务器之前,我想将StrokeCollection转换为PNG数据,这就是我所拥有的(我正在使用 ImageTools库): // Signature is a StrokesCollectionvar bounds = Signature.Get
我有一个InkPresenter绑定到我用于签名面板的MVVM模型中的StrokeCollection.在我将数据发送回服务器之前,我想将StrokeCollection转换为PNG数据,这就是我所拥有的(我正在使用 ImageTools库):

// Signature is a StrokesCollection
var bounds = Signature.GetBounds();
var inkSignature = new InkPresenter {Height = bounds.Height,Width = bounds.Width,Strokes = Signature};
var wbBitmap = new WriteableBitmap(inkSignature,null);
var myImage = wbBitmap.ToImage();
byte[] by = null;
MemoryStream stream = null;
using (stream = new MemoryStream())
{
    PngEncoder png = new PngEncoder();
    png.Encode(myImage,stream);
}

流总是只用0填充,我觉得我错过了一些我没想过的非常简单的东西.有任何想法吗?

解决方法

我认为问题在于渲染器在您获取UI之前没有时间更新UI.尝试将位图创建包装到Dispatcher.BeginInvoke调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读