所以我在一个窗口中有这个XAML并命名控件MyBrowser
:
<Grid>
<WindowsFormsHost>
<forms:WebBrowser Name="MyBrowser" ScriptErrorsSuppressed="True"/>
</WindowsFormsHost>
</Grid>
在我传递Uri后面的代码中显示。
public partial class AuthWindow2 : Window
{
public AuthWindow2(Uri uri)
{
InitializeComponent();
this.MyBrowser.Url = uri;
}
}
键入此intellisense时会找到受控名为MyBrowser的名称 没有任何问题,但在构建时,它说:
'AuthWindow2'不包含'MyBrowser'的定义,不包含 扩展方法'MyBrowser'接受类型的第一个参数 可以找到'AuthWindow2'(你是否错过了使用指令或者 装配参考?)
这似乎很基本,但我无法弄清楚为什么这么简单的事情不起作用。
如果我命名Grid或WindowsFormsHost控件,我可以访问它们并构建没有任何错误。
答案 0 :(得分:2)
WebBrowser不是FrameworkElement,因此设置其Name
属性不会在MainWindow类中生成字段。
您必须使用x:Name
代替Name
才能获得生成的字段:
<forms:WebBrowser x:Name="MyBrowser" .../>
答案 1 :(得分:1)
将Name
更改为WebBrowser的x:Name
<forms:WebBrowser x:Name="MyBrowser" ScriptErrorsSuppressed="True" />