如何从C#代码创建和显示WPF内容



我正在开发一个WPF应用程序,我想用c#代码而不是XML创建整个窗口。

我尝试了以下代码,但没有发生任何事情,网格没有显示。我错过什么了吗?有可能这样做吗?或者有其他解决方案吗?

public MainWindow()
{
Grid grd = new Grid();
grd.Margin = new System.Windows.Thickness(10, 10, 10, 0);
grd.Background = new SolidColorBrush(Colors.White);
grd.Height = 104;
grd.VerticalAlignment = System.Windows.VerticalAlignment.Top;
grd.ColumnDefinitions.Add(new ColumnDefinition());
grd.ColumnDefinitions.Add(new ColumnDefinition());
grd.ColumnDefinitions.Add(new ColumnDefinition());
RowDefinition row = new RowDefinition();
row.Height = new System.Windows.GridLength(45);
grd.RowDefinitions.Add(row);
row = new RowDefinition();
row.Height = new System.Windows.GridLength(45);
grd.RowDefinitions.Add(row);
row = new RowDefinition();
row.Height = new System.Windows.GridLength(45);
grd.RowDefinitions.Add(row);
InitializeComponent();
}

Grid grd已创建,但未添加到Window中。

InitializeComponent();
this.Content = grd;

它将替换XAML中声明的所有内容(如果有的话(。

然而,Grid是一个Panel,它本身并没有视觉表示,所以没有子元素的带有Grid的窗口看起来仍然是空的。尝试grd.ShowGridLines = true;查看行和列

网格文档实际上显示了一个大型示例,其中包含等效的c代码和xaml标记

最新更新