我有一个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);
.......
}
}
为什么不呢?
答案 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)
{
}
}
}