2012-05-04 6 views
0

У меня есть приложение 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

мне нужно перерисовывать форму или что-то делать? – user589195

+0

Это невозможно, используя MVVM. Потратьте некоторое время и изучите образец. – Will

ответ

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) 
     { 
     } 
    } 
} 
+0

Я пробовал это и до сих пор не вижу кнопку. – user589195

+0

@ user589195, кажется, что он работает нормально, позвольте мне добавить полный XAML и код за – Habib

+0

@ user589195, где вы добавляете кнопку в код позади, это должно быть после InitializeComponent – Habib

Смежные вопросы