首页 新闻 会员 周边

windows phone/silverlight 中WriteableBitmap截图生成的图片很怪异,

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-03 17:30

直接上代码:

 
var tileControl1 = new FlipCycleTileSmallControl("");
tileControl1.Measure(new Size(159, 159));
tileControl1.Arrange(new Rect(0d, 0d, 159, 159));
var writeableBitmap1 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl1, null);
i1.Source = writeableBitmap1;

var tileControl2 = new FlipCycleTileMediumControl("");
tileControl2.Measure(new Size(336, 336));
tileControl2.Arrange(new Rect(0d, 0d, 336, 336));
var writeableBitmap2 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl2, null);
i2.Source = writeableBitmap2;

var tileControl3 = new FlipCycleTileMediumControl("");
tileControl3.Measure(new Size(691, 336));
tileControl3.Arrange(new Rect(0d, 0d, 691, 336));
var writeableBitmap3 = new System.Windows.Media.Imaging.WriteableBitmap(tileControl3, null);
i3.Source = writeableBitmap3;

 

 

FlipCycleTileSmallControl,FlipCycleTileMediumControl,FlipCycleTileMediumControl是三个用户控件

我的目的是创建三个用户控件,然后通过WriteableBitmap截图,将截图保存为jpg文件,

可是保存的jpg文件只有第一个控件式正常的,其他两个都是黑色背景,而且布局散乱,

于是我用image控件显示出来了,奇怪的是,显示出来的图片,除第一个外,后两个也是布局散乱,黑色背景,

何故????

~冻结~的主页 ~冻结~ | 初学一级 | 园豆:39
提问于:2013-09-03 12:02
< >
分享
最佳答案
0

发现你在stackoverflow, MSDN都提了这个问题

收获园豆:10
dudu | 高人七级 |园豆:30943 | 2013-09-03 16:24

图片是如何保存的?

dudu | 园豆:30943 (高人七级) | 2013-09-03 16:27

@dudu: 

果然是大侠,这都被你发现了,图片用WriteableBitmapEx类库保存的:

using (var isolatedStorageFile = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var stream = isolatedStorageFile.CreateFile("/Shared/ShellContent/" + cityCode + "_FlipCycleTileSmall.jpg"))
    {
        writeableBitmap.SaveJpeg(stream, ShellTileUtility._flipCycleTileSmallWidth, ShellTileUtility._flipCycleTileSmallWidth, 0, 100);
    }
}

 

现在已经找到问题所在了:

var tileControl2 = new FlipCycleTileMediumControl("");

tileControl2.UpdateLayout();// todo:加这一句代码就好了,

多谢大侠,

~冻结~ | 园豆:39 (初学一级) | 2013-09-03 17:27

@dudu: 

有时间再看看这个问题吧,:)

http://q.cnblogs.com/q/54330/

~冻结~ | 园豆:39 (初学一级) | 2013-09-03 17:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册