首页 > 解决方案 > 如何从 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();
}

标签: c#wpfwpf-grid

解决方案


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

InitializeComponent();
this.Content = grd;

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

但是,Grid 是一个 Panel,它本身没有可视化表示,因此没有子元素的 Grid 窗口仍然看起来是空的。尝试grd.ShowGridLines = true;查看行和列

网格文档实际上显示了一个大示例,具有等效的 c# 代码和 xaml 标记


推荐阅读