2012-06-04 78 views
12

我正在设计一个Windows 8阅读器应用程序,并且必须使用控件来显示从某些网站订阅源获取的HTML内容。导致这些HTML内容可能包含图像或其他格式的文本,现在我正在使用richtextblock来显示HTML内容,但解析HTML内容需要花费大量时间。如何处理Windows 8中的HTML内容Metro应用程序

所以我想知道如果有能够处理除的WebView的HTML内容的任何控制。

谢谢。

更新时间: 我不能使用的WebView的原因是,我需要实现分页,像图像讲座敬爱的:

enter image description here

+0

有什么不对的WebView控件? –

+0

所以你没有使用HTML来开发这个应用程序? –

+0

@JP Alioto,谢谢你们。我已经更新了我的问题。 – ellic

回答

4

正如JP Alioto提到你应该使用WebView控制。

可以使用NavigateToString方法加载HTML。或者使用Navigate来请求一个URI。

但是使用WebView控件存在一些问题,具体而言,它呈现的方式不同,并且不是标准控件,这意味着应用栏或设置窗格等内容不会在WebView顶部呈现,因此有一种解决方法使用WebViewBrush在需要时将WebView“绘制”为标准控件,例如矩形。

+0

谢谢,马克。我已经更新了我的问题。 – ellic

1

此外,您还可以制作想要显示的网页截图。但要制作网页截图也不是件容易的事,但我会为您提供一些特殊网站,以创建其他网站的屏幕截图。然后你可以下载这个网站返回并打开的图像,并将其显示在你的Windows 8应用程序中。我告诉你一些例子如何我这样做:

StorageFolder screens = await Windows.ApplicationModel.Package.Current.InstalledLocation.CreateFolderAsync(@"Screens\" + folderName, CreationCollisionOption.GenerateUniqueName); 
var downloader = new BackgroundDownloader(); 
IStorageFile file = await screens.CreateFileAsync(fname, CreationCollisionOption.GenerateUniqueName); 
string my_uri = "http://api.snapito.com/web/e3c351d5994134eb1aea855ce78e296c3292d48a/lc/" + url + "?type=jpeg"; 
DownloadOperation download = downloader.CreateDownload(new System.Uri(my_uri), file); 
await download.StartAsync(); 
0

我认为只有两种选择,但他们都不是真正的好:

  • 使用的WebView和CSS和其他改变你的HTML技术看起来很原生。使用ScriptNotifyNavigationStarting和其他事件导航到另一页。在W8.1中的WebView要好得多(比如定期的控制处理不是浮于所有其他控件,...)

  • 解析HTML文件并生成本地元素。我开始这样一个实现并创建了一个XAML控件来显示具有本机控件的HTML(请参阅https://mytoolkit.codeplex.com/wikipage?title=HtmlTextBlock)。但是,如果你有复杂的HTML(例如iframe等),这可能无法正常工作,并且除了使用WebView控件之外别无选择。

+0

谢谢,我会通过它......并尽快回复您。 – Kumar

+0

也许您必须更改FixedHtmlTextBlock ItemsControl的项目面板才能拥有正确的Win8文本流... –

相关问题