2011-09-15 10 views
1

WebBrowserコントロールに変数から読み込まれたHTMLを表示させようとしています。私はこの解決策を見つけましたDisplaying html from string in WPF WebBrowser control私の最初のDependencyPropertyを実装しようとしています。ここでWebBrowserコントロールのDependencyPropertyを登録しようとしています

が実装で私の試みです:

Public Shared ReadOnly HtmlProperty As DependencyProperty = DependencyProperty.RegisterAttached("Html", GetType(String), GetType(PortraitSingle), New FrameworkPropertyMetadata(OnHtmlChanged)) 

<AttachedPropertyBrowsableForType(GetType(WebBrowser))> _ 
Public Shared Function GetHtml(ByVal d As WebBrowser) As String 
    Return DirectCast(d.GetValue(HtmlProperty), String) 
End Function 

Public Shared Sub SetHtml(ByVal d As WebBrowser, ByVal value As String) 
    d.SetValue(HtmlProperty, value) 
End Sub 

Private Shared Sub OnHtmlChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs) 
    Dim wb As WebBrowser = TryCast(d, WebBrowser) 
    If wb IsNot Nothing Then 
     wb.NavigateToString(TryCast(e.NewValue, String)) 
    End If 
End Sub 

とXAML

<WebBrowser x:Name="HTMLDescription" Grid.RowSpan="2" Margin="10" local:PortraitSingle.Html="{Binding HtmlToDisplay}"></WebBrowser> 

まず第一に、私がいる問題は、私は次のエラーを取得しています:

引数が 'Private Shared Sub'のパラメータ 'e'に指定されていません。OnHtmlChanged(dはSystem.Windows.DependencyObject、System.Windows.DependencyPropertyChangedEventArgsとして)

および

'Html'というタイプの添付可能なプロパティが 'PortraitSingle'に見つかりませんでした。 (PortraitSingleは私のウィンドウの名前です)。

私はそれらを回避する方法を考えることができません。

また、Webブラウザーコントロールに実際にHTMLを読み込む方法がわかりません。

ベン

答えて

2

私の問題が見つかりました。

たDependencyProperty声明

Public Shared ReadOnly HtmlProperty As DependencyProperty = DependencyProperty.RegisterAttached("Html", GetType(String), GetType(PortraitSingle), New FrameworkPropertyMetadata(AddressOf OnHtmlChanged)) 
に 'のAddressOf' を追加するために必要な
関連する問題