1

我正在搜索如何在 webview 中绑定 html,我发现了这个:

public static class WebBrowserHelper
{

public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
    "Html", typeof(string), typeof(WebBrowserHelper), new PropertyMetadata(null, OnHtmlChanged));

public static string GetHtml(DependencyObject dependencyObject)
{
    return (string)dependencyObject.GetValue(HtmlProperty);
}

public static void SetHtml(DependencyObject dependencyObject, string value)
{
    dependencyObject.SetValue(HtmlProperty, value);
}

private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    var browser = d as WebView;

    if(browser == null)
        return;

    var html = e.NewValue.ToString();

    browser.NavigateToString(html);
}

}

xamls 代码应该是这样的

<WebView Grid.Column="1" Height="628" Margin="10,0" VerticalAlignment="Top" cxi:WebBrowserHelper.Html="{Binding Question.Body}" />

但我无法在 xaml 中访问此属性,我做错了吗?

4

1 回答 1

0

我看到您正在按照此处列出的示例进行操作。

如果没有看到完整的 XAML 列表,我猜你没有cxi命名空间的命名空间声明。您可能从页面复制代码并将其粘贴到您自己的类中,该类位于您自己的命名空间中。您需要确保为此类所在的名称空间定义了名称空间前缀,然后才能使用它。

假设您在“MyStuff”命名空间中定义了WebBrowserHelper 。你会使用:

xmlns:ms="using MyStuff"

在您的 xaml 文件的顶部。然后稍后您将使用

ms:WebBrowserHelper.Html

因此,您将使用ms前缀而不是cxi前缀。

开发支持、设计支持和更多的好处:http: //bit.ly/winappsupport

于 2013-02-28T22:03:36.990 回答