以编程方式设置选项卡的内容

时间:2012-05-04 09:08:54

标签: c# .net wpf

我有一个WPF应用程序,我想以编程方式显示内容。但是,当我尝试以某种顺序执行此操作时,它无法显示。

这有效

public partial class MainWindow : Window
    {
        private static GX3Logger logger = GX3Logger.GetLogger();
        private GX3ClientMain.GX3ClientMain clientMain = null;

        /// <summary>
        ///  Main method
        /// </summary>
        /// <param name="args">
        ///  Application args
        /// </param>
        /// 
        public MainWindow()
        {
            InitializeComponent();
            Button btn = new Button();
            btn.Content = "Moo";
            btn.Height = 100;
            btn.Width = 100;
            stackPanel1.Children.Add(btn);
        }



        public int Initialise(string[] args)
        {
        ........
        }
}

这不是

public partial class App : Application
    {
        void app_Startup(object sender, StartupEventArgs e)
        {
            MainWindow mw = new MainWindow();
            mw.Initialise(e.Args);

        }
    }

public partial class MainWindow : Window
    {
        private static GX3Logger logger = GX3Logger.GetLogger();
        private GX3ClientMain.GX3ClientMain clientMain = null;

        /// <summary>
        ///  Main method
        /// </summary>
        /// <param name="args">
        ///  Application args
        /// </param>
        /// 
        public MainWindow()
        {
            InitializeComponent();            
        }



        public int Initialise(string[] args)
        {
            Button btn = new Button();
            btn.Content = "Moo";
            btn.Height = 100;
            btn.Width = 100;
            stackPanel1.Children.Add(btn);
            .......
        }
}

为什么不呢?

1 个答案:

答案 0 :(得分:1)

您需要将StackPanel放在标签项

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
        <TabControl>
            <TabItem Name="tab1">
                <StackPanel Name="stackPanel1">

                </StackPanel>
            </TabItem>
        </TabControl>
</Window>

然后在代码背后

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Button btn = new Button();
            btn.Content = "Moo";
            stackPanel1.Children.Add(btn);
            Button btn2 = new Button();
            btn2.Content = "test";
            stackPanel1.Children.Add(btn2);

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
        }
    }
}