8

我有这个主 wpf 窗口 WPF 主窗口

和这个 WPF 页面

WPF 页面

我需要将此页面添加到主窗口中的 tabcontrol

这是我的 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);
    }

在应用程序运行后,我在选择新选项卡时遇到了这个异常 添加 tab3 后的主 WPf 窗口

选择选项卡 3 后出错

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

4

2 回答 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;
    }
于 2013-03-23T16:51:24.113 回答
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);
}
于 2013-03-23T16:43:16.200 回答