2015-02-28 7 views
0
public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     System.Windows.Controls.Button b = new System.Windows.Controls.Button(); 
     System.Windows.Shapes.Rectangle r = new System.Windows.Shapes.Rectangle(); 
     r.Width = 40; 
     r.Height = 40; 
     r.Fill = System.Windows.Media.Brushes.Black; 
     b.Content = r; // Make the square the content of the Button 
     this.AddChild(b); 
    } 
} 

У меня есть код для кнопки из некоторых WPF 4 книги и я хочу, чтобы отобразить здесь (не из XAML), но когда я хочу кнопку «B», чтобы добавить в качестве нижестоящего основной window i get exception and info: Содержимое ContentControl должно быть единственным элементом.ребенок MainWindow в приложении WPF

Как я могу отобразить его в C#?

+1

Удалите все это и используйте надлежащий XAML. –

+0

Я уже знаю, что иногда XAML - лучшее решение, но я хочу знать это, потому что им любопытно. – Kamiel

ответ

0

Как вы говорите, эта линия

this.AddChild(b); 

не будет работать, как ошибка указывает на то, что требует отдельного элемента (т.е. сетки, StackPanel)

Дайте сетку в XAML имя MainWindow.xaml

<Grid x:Name="root">   
</Grid> 

и добавить кнопку к сетке в MainWindow.xaml.cs

//this.AddChild(b); //wont work cant add button to this(MainWindow) 
root.Children.Add(b); //adds button to the Grid of MainWindow 
+0

Итак, MainWindow может иметь только одного ребенка, и в этом случае это сетка, да? – Kamiel

+0

правильный .. вы также можете использовать StackPanel, Canvas и т. Д. Любую из панелей – SWilko

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

  • Нет связанных вопросов^_^