为什么我的浏览器元素不显示我的 html 字符串?
Why did my Browser Element doesent show my html string?
所以我第一次尝试使用 Wpfl 中的 Web 浏览器元素。我尝试在 Web 浏览器元素中显示我的 html 字符串。我是这样试过的:
public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
"Html",
typeof(string),
typeof(Class1),
new FrameworkPropertyMetadata(OnHtmlChanged));
[AttachedPropertyBrowsableForType(typeof(WebBrowser))]
public static string GetHtml(WebBrowser d)
{
return (string)d.GetValue(HtmlProperty);
}
public static void SetHtml(WebBrowser d, string value)
{
d.SetValue(HtmlProperty, value);
}
static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
WebBrowser wb = d as WebBrowser;
if (wb != null)
wb.NavigateToString(e.NewValue as string);
}
在我看来我的 属性 是这样的:
private string _html;
public string html1
{
get
{
string html = "html string here";
return _html + html;
}
set
{
_html = value;
NotifyPropertyChanged(nameof(html1));
}
}
和我的 XAML 一样:
<WebBrowser local:Class1.Html="{Binding html}"></WebBrowser>
但它没有显示我的 html 字符串。我做错了什么?
如果当您将附加的 属性 设置为像这样的本地值时它起作用,您就知道绑定到 html
失败了:
<WebBrowser local:Class1.Html="test..."></WebBrowser>
此外,您绑定到名为“html”的 属性,但您发布的那个名为 html1
。
确保您已将控件的 DataContext
设置为具有 public html
属性 returns 的 class一个string
。那么您的代码应该可以工作。
所以我第一次尝试使用 Wpfl 中的 Web 浏览器元素。我尝试在 Web 浏览器元素中显示我的 html 字符串。我是这样试过的:
public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
"Html",
typeof(string),
typeof(Class1),
new FrameworkPropertyMetadata(OnHtmlChanged));
[AttachedPropertyBrowsableForType(typeof(WebBrowser))]
public static string GetHtml(WebBrowser d)
{
return (string)d.GetValue(HtmlProperty);
}
public static void SetHtml(WebBrowser d, string value)
{
d.SetValue(HtmlProperty, value);
}
static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
WebBrowser wb = d as WebBrowser;
if (wb != null)
wb.NavigateToString(e.NewValue as string);
}
在我看来我的 属性 是这样的:
private string _html;
public string html1
{
get
{
string html = "html string here";
return _html + html;
}
set
{
_html = value;
NotifyPropertyChanged(nameof(html1));
}
}
和我的 XAML 一样:
<WebBrowser local:Class1.Html="{Binding html}"></WebBrowser>
但它没有显示我的 html 字符串。我做错了什么?
如果当您将附加的 属性 设置为像这样的本地值时它起作用,您就知道绑定到 html
失败了:
<WebBrowser local:Class1.Html="test..."></WebBrowser>
此外,您绑定到名为“html”的 属性,但您发布的那个名为 html1
。
确保您已将控件的 DataContext
设置为具有 public html
属性 returns 的 class一个string
。那么您的代码应该可以工作。