如何将一个WPF表单嵌入另一个?

时间:2009-02-14 18:03:39

标签: wpf embedding

我想拥有带有制表符控件的主WPF表单,其中每个制表符包含一个独立的WPF表单。这些形式并不相互依赖,所以我认为将它们分开开发更简单,然后将它们嵌入到主形式中。

表单数量已知,因此不需要动态插件系统。

4 个答案:

答案 0 :(得分:7)

当您使用FrameNavigationWindow时,您可以加载不同的xaml Pages甚至html。您还可以将其设置为具有前向和后向导航功能的浏览器。见http://msdn.microsoft.com/en-us/library/ms750478.aspx

您可以在每个标签上放置一个框架,并让它加载某个页面。

<Window x:Class="PluginApplication.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <DockPanel>
        <Frame Name="frame" NavigationUIVisibility="Visible" Source="SomePage.xaml" />
    </DockPanel>
</Window>

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    WindowTitle="Page Title"
    WindowWidth="500"
    WindowHeight="200">
  Hello world
</Page>

答案 1 :(得分:4)

使子窗体派生自UserControl,在主窗体中添加一个选项卡控件,其中每个选项卡中都有一个用户控件。

答案 2 :(得分:2)

查看Josh Smith的这篇MSDN文章。这是一个很好的解决方案。

使用Model-View-ViewModel设计模式的WPF应用

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

答案 3 :(得分:1)

我更喜欢用userControl制作它 首先创建用户控件 enter image description here

之后,在另一个地方包含此userControle的引用 enter image description here

在frmHome的任何地方...

 <DockPanel>
      <Entity:ucContactList/>
 </DockPanel>