如何将WPF页面添加到TabControl?

8

我有一个主要的 WPF 窗口Main WPF window

和这个 WPF 页面

WPF page

我需要将此页面添加到主窗口的选项卡控件中

这是我的 OnRender 方法

   protected override void OnRender(DrawingContext drawingContext)
    {
        if (ISFirstRender)
        {
            TabItem tabitem = new TabItem();
            tabitem.Header = "Tab 3";
            pan1.Items.Add(tabitem);
            Page1 page1 = new Page1();
            tabitem.Content = new Page1();

            ISFirstRender = false;
        }

        base.OnRender(drawingContext);
    }

在应用程序运行后,当选择新选项卡时,我遇到了这个异常

Main WPf window after add tab3

Error after select tab 3

我需要知道如何将wpf页面添加到现有的tabcontroll中

2个回答

11

如果您想添加一个新的Page,而不是UserControl,您可以创建一个新的Frame对象并将页面放入其中。

    if (ISFirstRender)
    {
        TabItem tabitem = new TabItem();
        tabitem.Header = "Tab 3";
        Frame tabFrame = new Frame();
        Page1 page1 = new Page1();
        tabFrame.Content = page1;
        tabitem.Content = tabFrame;
        pan1.Items.Add(tabitem);

        ISFirstRender = false;
    }

3
您可以在 TabControl 中添加用户控件。因此,转到添加新项并选择用户控件,然后制作您想要的内容(就像页面中的内容)。然后将该用户控件的实例添加到 TabControl
protected override void OnRender(DrawingContext drawingContext)
{
    if (ISFirstRender)
    {
        TabItem tabitem = new TabItem();
        tabitem.Header = "Tab 3";
        pan1.Items.Add(tabitem);

        MyUserControl userControl = new MyUserControl();
        tabitem.Content = userControl;

        ISFirstRender = false;
    }

    base.OnRender(drawingContext);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接