c# - 如何从 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 标记
推荐阅读
- django - Django:重复键值违反了 Postgresql 而不是 SQlite 的唯一约束 -> 为什么?
- flutter - 无效值:只有有效值是 0:1 - Flutter
- python - 如何使用 Pymongo 使用默认语言创建文本索引
- docker - 为在 docker 上运行的 invoice-ninja 实例设置用户和组
- java - 原子地运行两个操作
- python - 网站上挂着漂亮的汤网刮痧
- python - 测量海龟之间的距离
- linux - 在 FTP 期间在 Linux 服务器上的 shell 脚本中获取远程位置的文件计数
- reactjs - 将主屏幕拆分为组件后出现 navigation.navigate 类型错误
- java - 尝试生成 Jasper 报告时出现异常