0

我为 wp7 创建了一个网络浏览器。以下是我在我的应用程序中使用的代码。但是会发生什么是图像是空白的(白色图像)见下图。有人可以帮我吗?谢谢你的帮助。

private void PinToStart_Click(object sender, EventArgs e)
    {
        string _url = UrlTextBox.Text;

        ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("url=" + _url));

        using (var store = IsolatedStorageFile.GetUserStoreForApplication())
        {
            var bmp = new WriteableBitmap(173, 173);
            var tt = new TranslateTransform();
            tt.X = 0;
            tt.Y = 0;
            bmp.Render(browsers[this.currentIndex], tt);
            bmp.Invalidate();
            var filename = "/Shared/ShellContent/01d.jpg";
            using (var st = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, FileAccess.Write, store))
            {
                bmp.SaveJpeg(st, 173, 173, 0, 100);
            }
        }

        // Create the Tile if we didn't find that it already exists.
        if (TileToFind == null)
        {
            StandardTileData NewTileData = new StandardTileData
            {
                BackgroundImage = new System.Uri("isostore:/Shared/ShellContent/01d.jpg", System.UriKind.Absolute),
                Title = string.Format(_url.Substring(7)),
                BackTitle = "Browser",
                BackContent = (string)_url.Substring(7),
                BackBackgroundImage = new Uri("", UriKind.Relative)
            };

            // Create the Tile and pin it to Start. This will cause a navigation to Start and a deactivation of our application.
            ShellTile.Create(new Uri("/Web.xaml?passedUrl=" + _url, UriKind.Relative), NewTileData);
        }
        else
        {
            MessageBox.Show("A live tile already created for this service. Please check it out!!!");
        }
    }

在此处输入图像描述

4

2 回答 2

1

您需要做的是,将 html 内幕渲染为可写位图并将结果保存为 173x173 文件。

我不确定您是否可以像 IE 一样呈现 webbrowser 控件。

你不走运..阅读此https://stackoverflow.com/a/6479233/1306871

由于某些错误,webbrowser 不会在 writeablebitmap 中呈现

于 2012-07-26T15:35:56.413 回答
1
Canvas canvas = new Canvas();
canvas .Width = 173;
canvas.Height = 173;
WriteableBitmap wpm= new WriteableBitmap(173, 173);
using (MemoryStream mem = new MemoryStream()){Image image = new Image();
image.Source = browsers[this.currentIndex];
can.Children.Add(image);                   
TranslateTransform translateTransform = new TranslateTransform();
translateTransform.X = 0;
translateTransform.Y = 0;
wpm.Render(canvas, translate Transform);
}    
wpm.Invalidate();                
wpm.SaveJpeg(mem, 768, 200, 0, 100);
var filename = "/Shared/ShellContent/01d.jpg";
using (var st = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, FileAccess.Write, store)){bmp.SaveJpeg(st, 173, 173, 0, 100);}

编写代码创建图块希望对您有所帮助...

于 2013-12-12T14:07:08.077 回答