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

したがって、 cxiプレフィックスの代わりにmsプレフィックスを使用します。

開発サポート、設計サポート、その他の優れた機能が進行中: http://bit.ly/winappsupport

于 2013-02-28T22:03:36.990 に答える