【问题标题】:How do I embed one WPF form into another?如何将一个 WPF 表单嵌入到另一个表单中?
【发布时间】:2009-02-14 18:03:39
【问题描述】:

我想拥有带有选项卡控件的主 WPF 表单,其中每个选项卡都包含一个独立的 WPF 表单。这些表单不相互依赖,所以我认为单独开发它们会更容易,然后将它们嵌入到主表单中。

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

【问题讨论】:

    标签: wpf embedding


    【解决方案1】:

    当您使用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>
    

    【讨论】:

      【解决方案2】:

      使子窗体从 UserControl 派生,在主窗体中添加一个选项卡控件,其中每个选项卡内包含这些用户控件之一。

      【讨论】:

      • 尼尔,这是我倾向于的解决方案。我确定我可以弄清楚,但也许您不介意发布您的新 UserControl 类的 xaml.cs,然后您将如何将自定义 xaml 的内容发布到 MainWindow.xaml 中。一个具体的例子(即使微不足道也会有帮助)
      【解决方案3】:

      我更喜欢用 userControl 来做这个 首先创建用户控件

      之后,在另一个地方包含这个 userControle 的引用

      frmHome 中的任何位置...

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

      【讨论】:

        猜你喜欢
        • 2013-01-29
        • 1970-01-01
        • 2016-02-18
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-31
        • 1970-01-01
        相关资源
        最近更新 更多