这几天项目是遇到一个需求,需要后台把几个元素生成到一张图片上,并保存到文件中

 private void cutscreen_Click(object sender, EventArgs e)
{
Grid contentGrid = new Grid()
{
Width = ,
Background = new SolidColorBrush(Colors.White)
};
RowDefinition row1 = new RowDefinition();
RowDefinition row2 = new RowDefinition(); contentGrid.RowDefinitions.Add(row1);
contentGrid.RowDefinitions.Add(row2); Image ShowImg = new Image()
{
Source = new BitmapImage(new Uri("/Assets/Kelly-Clarkson.jpg", UriKind.Relative))
}; Grid.SetRow(ShowImg, );
contentGrid.Children.Add(ShowImg); TextBlock ShowIntrotbk = new TextBlock()
{
Text = "我要把你和图片连接在一起",
FontSize = ,
TextWrapping = TextWrapping.Wrap
}; Grid.SetRow(ShowIntrotbk, );
contentGrid.Children.Add(ShowIntrotbk); SaveImage(contentGrid);
} private void SaveImage(UIElement _cutimgPanel)
{
WriteableBitmap wrbitmap = new WriteableBitmap(_cutimgPanel, null); using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = storage.CreateFile("CutPanel.jpg"))
{
wrbitmap.SaveJpeg(fileStream, (int)_cutimgPanel.DesiredSize.Width, (int)_cutimgPanel.DesiredSize.Height, , );
MessageBox.Show("生成成功!");
}
}
}

这样居然有异常了

原来 获得的 Width和Height都是0,上面已经指定了宽度,但是依然没有获得

这时把生成的Grid添加的页面上,居然正常显示了(为了和下一张区分,我加了一个TextBox)

这就说明生成成功能,可为什么会报错呢?

原来,windows phone如果控件不在界面上显示时,是不会计算其布局大小的,所以没有宽度和高度的,那我们就手动计算一下呗,在后面添加完以下代码

contentGrid.Measure(new Size(, ));//这时重新计算一下,这个高度是没有效果的最好超过你所有控件的加起来的高度
contentGrid.Arrange(new Rect(, , (int)contentGrid.DesiredSize.Width, (int)contentGrid.DesiredSize.Height));

完工了,这样我们就可以在后台拼接任意图片了

Windows Phone 使用 WriteableBitmap后台生成图片的更多相关文章

  1. highcharts 结合phantomjs纯后台生成图片系列二之php2

    上篇文章中介绍了phantomjs的使用场景,方法. 本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片.包含一步步详细的php代码 一.highcharts 结合 ...

  2. highcharts 结合phantomjs纯后台生成图片系列二之php

    上篇文章中介绍了phantomjs的使用场景,方法.本篇文章详细介绍使用php,highcharts 结合phantomjs纯后台生成图片. 一.准备: 下载phantomjs解析插件,从 highc ...

  3. highcharts 结合phantomjs纯后台生成图片

    highcharts 结合phantomjs纯后台生成图片 highcharts 这个图表展示插件我想大家应该都知道,纯javascript编写,相比那些flash图表插件有很大的优势,至少浏览器不用 ...

  4. 背水一战 Windows 10 (120) - 后台任务: 后台上传任务

    [源码下载] 背水一战 Windows 10 (120) - 后台任务: 后台上传任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台上传任务 示例演示 uwp 的后台上 ...

  5. 背水一战 Windows 10 (119) - 后台任务: 后台下载任务(任务分组,组完成后触发后台任务)

    [源码下载] 背水一战 Windows 10 (119) - 后台任务: 后台下载任务(任务分组,组完成后触发后台任务) 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台下 ...

  6. 背水一战 Windows 10 (118) - 后台任务: 后台下载任务(任务分组,并行或串行执行,组完成后通知)

    [源码下载] 背水一战 Windows 10 (118) - 后台任务: 后台下载任务(任务分组,并行或串行执行,组完成后通知) 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 ...

  7. 背水一战 Windows 10 (117) - 后台任务: 后台下载任务

    [源码下载] 背水一战 Windows 10 (117) - 后台任务: 后台下载任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 后台下载任务 示例演示 uwp 的后台下 ...

  8. Windows Phone background Audio 后台音频

    Windows Phone 后台音频的确不是什么新鲜的话题了,但发现目前在WP平台的音频播放应用多多少少会有一些瑕疵,所以在此给大家在此介绍下这个功能给有需要的朋友们. 首先介绍下我们的应用在后台播放 ...

  9. Windows Redis 开机启动后台运行

    1. 从 Redis 的安装目录进入 cmd 2. 在 cmd 中输入, 将Redis绑定为 Windows 服务, 并设置为后台启动: redis-server --service-install ...

随机推荐

  1. Unity NGUI的多分辨率适配

    参考链接:http://blog.csdn.net/mfc11/article/details/17681429,作者:CSDN mfc11 1.NGUI默认的适配方式: NGUI默认是适配方式是根据 ...

  2. BestCoder Round #51 (div.2)

    明显是无良心的数学round= = 1000 Zball in Tina Town #include<iostream> #include<cstdio> #include&l ...

  3. zoj 1760 floyd构图+Dinic最大流

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 #include <cstdio> #includ ...

  4. MySQL ERROR 1045错误解决办法

    今天在安装MySQL数据库时,有安装过程中报ERROR 1045错误,网上查了一下,解决方法如下: 1.对于安装过程中该错选择"skip"继续向下安装,完成安装: 2.在MySQL ...

  5. 【BZOJ4327】JSOI2012 玄武密码 AC自动机

    [BZOJ4327]JSOI2012 玄武密码 Description 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河.相传一日,一缕紫气从天而至,只一瞬间便消失在了进香 ...

  6. ISAP 简介

    刘汝佳的蓝书上已经给出了大部分,先给上完整代码(以草地排水为例). #include<iostream> #include<algorithm> #include<cst ...

  7. 利用column-width属性设置多栏布局

    css样式设置为: div{ background:blanchedalmond; margin:0 auto; width:1230px; -moz-column-width:400px; -web ...

  8. iOS 开发 入门:使用Ad Hoc 进行用户测试

    在完成iOS开发,准备进行发布之前,我们都希望App能在周围的朋友之间先进行测 试,提提意见,修改完善之后再发布到App Store上.Apple考虑到这一点,因此通过Ad Hoc来实现发布前的用户测 ...

  9. View获取焦点

    <EditText android:id="@+id/et_phoneNum" android:layout_width="match_parent" a ...

  10. java自定义对话框

    package com.matp.view; import java.awt.FlowLayout; public class SimpleDialog extends JDialog impleme ...