我有一个用C#编写的工作应用程序,现在想要扩展该应用程序,以允许用户在应用程序窗口内切换查看应用程序和浏览嵌入式Web浏览器。
我还有一个单独的工作Web浏览器,也是用C#编写的。
我刚刚为原始应用程序添加了包括“选项卡”显示在内的功能,其中原始应用程序将显示在第一个选项卡上,嵌入式Web浏览器将显示在第二个选项卡上。
应用程序的“选项卡”显示是使用Visual Studio中的XAML标记创建的。现在,我想将同样由C#编写的Web浏览器实例添加到我在XAML标记中创建的第二个选项卡中。
这将类似于:
<TabControl>
<TabItem Header="Browser">
<StackPanel>
<!-- Call/ instantiate the browser here -->
</StackPanel>
</TabItem>
</TabControl>
但我不知道如何在XAML标记内调用/创建浏览器实例...
浏览器是使用C#创建的:
namespace Agent
{
public partial class Browser : Form
{
public Browser()
{
...
}
}
}
请问有人能解释一下如何在XAML标记内部创建Browser
实例吗?
编辑
好的,我已按照建议编辑了我的XAML标记-现在我有:
<Window ...
xmlns:Agent="clr-namespace:Agent"
...>
<Grid>
...
<TabControl>
<TabItem Header="R">
<StackPanel>
...
</StackPanel>
</TabItem>
<TabItem Header="Browser">
<Agent:Browser x:Name="Browser" />
</TabItem>
</TabControl>
</Grid>
</Window>
我也更新了Browser.cs
类,现在它扩展了UserControl
,而不是Form
:
public partial class Browser : UserControl{
然而,我在这一行代码上遇到了编译错误:
<Agent:Browser x:Name="Browser" />
这段文字的意思是:
名称“Browser”在名称空间“clr-namespace:Agent”中不存在。
但很显然,Browser
确实存在于Agent
中,正如我在这里包含的代码所示...事实上,当输入<Agent:Browser x:Name="Browser />
时,当我键入:
时,Browser
是自动完成菜单中出现的选项之一......
我做错了什么?为什么编译器认为Browser
不存在于Agent
中?
WinForms
与优美的WPF
混合使用。对于WinForms
,你需要使用<WindowsFormsHost />
元素。祝你好运,你会需要它的。 - XAMlMAXWPF
很陌生,之前也没有使用过WinForms
...它们有什么区别?我应该做些什么? - Noble-Surfer