我的 xaml 中有一个 webview,如下所示:
<WebView x:Name="WebView" />
而且,在我的代码隐藏中,我有一个名为“htmlcontent”的变量,其中包含 html 字符串数据,如下所示:
<html><body><b>Hi there</b></body></html>
如何绑定这个 html 字符串并在 XAML 的 webview 组件中显示它的格式?
*编辑 - 顺便说一句,我正在做一个 Windows 8 Metro 应用程序,因此不支持 WebBrowser 控件
WebView 上不存在 HtmlString 属性(只有作为 Uri 的 Source 属性)。但是您可以做的是为 WebView 自己定义一个新的 HtmlString 附加属性。只需创建以下类:
namespace YOURNAMESPACE
{
class MyProperties
{
// "HtmlString" attached property for a WebView
public static readonly DependencyProperty HtmlStringProperty =
DependencyProperty.RegisterAttached("HtmlString", typeof(string), typeof(MyProperties), new PropertyMetadata("", OnHtmlStringChanged));
// Getter and Setter
public static string GetHtmlString(DependencyObject obj) { return (string)obj.GetValue(HtmlStringProperty); }
public static void SetHtmlString(DependencyObject obj, string value) { obj.SetValue(HtmlStringProperty, value); }
// Handler for property changes in the DataContext : set the WebView
private static void OnHtmlStringChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
WebView wv = d as WebView;
if (wv != null)
{
wv.NavigateToString((string)e.NewValue);
}
}
}
}
假设您的 DataContext 字段名为 CurrentHtmlString,那么您可以在 XAML 文件中使用这个新 WebView 的 HtmlString 属性来绑定它,语法如下:
<WebView local:MyProperties.HtmlString="{Binding CurrentHtmlString}"></WebView>
通常,您的 XAML 文件顶部已包含以下行:
xmlns:local="using:MYNAMESPACE"
您可以在这里找到 Rob Caplan 的更多解释:http://blogs.msdn.com/b/wsdevsol/archive/2013/09/26/binding-html-to-a-webview-with-attached-properties.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)