我正在设计一个Windows 8阅读器应用程序,并且必须使用控件来显示从某些网站订阅源获取的HTML内容。导致这些HTML内容可能包含图像或其他格式的文本,现在我正在使用richtextblock来显示HTML内容,但解析HTML内容需要花费大量时间。如何处理Windows 8中的HTML内容Metro应用程序
所以我想知道如果有能够处理除的WebView的HTML内容的任何控制。
谢谢。
更新时间: 我不能使用的WebView的原因是,我需要实现分页,像图像讲座敬爱的:
我正在设计一个Windows 8阅读器应用程序,并且必须使用控件来显示从某些网站订阅源获取的HTML内容。导致这些HTML内容可能包含图像或其他格式的文本,现在我正在使用richtextblock来显示HTML内容,但解析HTML内容需要花费大量时间。如何处理Windows 8中的HTML内容Metro应用程序
所以我想知道如果有能够处理除的WebView的HTML内容的任何控制。
谢谢。
更新时间: 我不能使用的WebView的原因是,我需要实现分页,像图像讲座敬爱的:
正如JP Alioto提到你应该使用WebView控制。
可以使用NavigateToString方法加载HTML。或者使用Navigate来请求一个URI。
但是使用WebView控件存在一些问题,具体而言,它呈现的方式不同,并且不是标准控件,这意味着应用栏或设置窗格等内容不会在WebView顶部呈现,因此有一种解决方法使用WebViewBrush在需要时将WebView“绘制”为标准控件,例如矩形。
谢谢,马克。我已经更新了我的问题。 – ellic
此外,您还可以制作想要显示的网页截图。但要制作网页截图也不是件容易的事,但我会为您提供一些特殊网站,以创建其他网站的屏幕截图。然后你可以下载这个网站返回并打开的图像,并将其显示在你的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();
我认为只有两种选择,但他们都不是真正的好:
使用的WebView和CSS和其他改变你的HTML技术看起来很原生。使用ScriptNotify
和NavigationStarting
和其他事件导航到另一页。在W8.1中的WebView要好得多(比如定期的控制处理不是浮于所有其他控件,...)
解析HTML文件并生成本地元素。我开始这样一个实现并创建了一个XAML控件来显示具有本机控件的HTML(请参阅https://mytoolkit.codeplex.com/wikipage?title=HtmlTextBlock)。但是,如果你有复杂的HTML(例如iframe等),这可能无法正常工作,并且除了使用WebView控件之外别无选择。
谢谢,我会通过它......并尽快回复您。 – Kumar
也许您必须更改FixedHtmlTextBlock ItemsControl的项目面板才能拥有正确的Win8文本流... –
有什么不对的WebView控件? –
所以你没有使用HTML来开发这个应用程序? –
@JP Alioto,谢谢你们。我已经更新了我的问题。 – ellic