WPF 里怎么用代码动态的确定 Grid的行列数呢?

如题所述

主窗体上放一个Grid,名字为“MainGrid"
ColumnDefinition和RowDefinition的Width和Height属性的值是GridLength对象。和XAML里一样,GridLength有三种值,Auto,Star,Pixel。
下面的代码没有显示设置这两个属性,因为它们的默认值都是 1*,正符合等分的要求。
private void MainWindow_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
for (int i = 1; i <= 5; i++) {
MainGrid.ColumnDefinitions.Add(new ColumnDefinition());
MainGrid.RowDefinitions.Add(new RowDefinition());
}
MainGrid.ShowGridLines = true; // 测试用,可以去掉

Button crl = default(Button);
for (int c = 0; c <= 4; c++) {
for (int r = 0; r <= 4; r++) {
crl = new Button { Content = string.Format("Button{0}-{1}", r, c) };
Grid.SetColumn(crl, c);
Grid.SetRow(crl, r);
MainGrid.Children.Add(crl);
}
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

WPF 里怎么用代码动态的确定 Grid的行列数呢?
private void MainWindow_Loaded(object sender, System.Windows.RoutedEventArgs e){ for (int i = 1; i <= 5; i++) { MainGrid.ColumnDefinitions.Add(new ColumnDefinition());MainGrid.RowDefinitions.Add(new RowDefinition());} MainGrid.ShowGridLines = true; \/\/ 测试用,可以去掉 B...

请教用WPF怎么在代码中定义grid的行的高的比例
6 <Grid ShowGridLines="True" Height="100" Background="#ff0" > <Grid.RowDefinitions> <RowDefinition Height="0.7*"\/> <RowDefinition Height="0.3*"\/> <\/Grid.RowDefinitions> <\/Grid>

wpf里如何动态改变一个按钮模板里边的静态资源
可以找到模板下面的控件喔,当然也可以修改其属性。给个demo给你 前台:<Grid> <Button Name="btn" Width="80" Height="30"> <Button.Resources> <SolidColorBrush x:Key="redbrush" Color="Red"\/> <SolidColorBrush x:Key="greenbrush" Color="Green"\/> <\/Button.Resources> <Button.Templat...

C# WPF后台代码动态添加控件
前台代码:这里使用了Caliburn.Micro框架,因此需要引用相应的命名空间。由于控件数量不确定,需要显示不全时行列可以拖动,实现这一功能只需要将控件包裹在:中即可。后台代码:数据模型:需要注意的是:①首先StudentGridLoaded和TeacherGridLoaded是在viewModel初始化完成后才加载的,因此在构造函数执行完后它们...

wpf中的grid的row属性有什么用?
<Button Grid.Row="1" \/> 其中的列也是一样的道理。特点 程序人员与美工人员明确分工,美工人员可以使用Expression Studio中套装工具可视化的设计界面。然后交给程序开发组中的XAML就可以。让程序人员直接套用到开发环境,不需要想页面怎么切了。对 与WPF最重要的特色,矢量图的超强支持 。兼容支持2D绘图...

c# wpf中,如何把一个窗口分成几块,比如像九宫格这样的,2*2的等等,用...
比如说用Grid,下面就是把它分成三行,列是一样的,就是把Row换成Column就是了,当然Height你得换成Width:<Grid.RowDefinitions> <RowDefinition Height="30" \/> <RowDefinition Height="Auto" \/> <RowDefinition Height="*" \/> <\/Grid.RowDefinitions> 三行我定义了不同的高度,你完全可以定义成一...

WPF C# 如何在动态添加的grid控件中添加某个网格的单击事件?
void ImageMouseDown(object sender, MouseButtonEventArgs e){ if (sender is Image){ Image image = sender as Image;\/\/ 以下是Image控件所处Grid的行和列 int RowIndex = Grid.GetRow(image);int ColumnIndex = Grid.GetColumn(image);\/\/ 也可以在这里更换图片 image.Source = ...} } ...

WPF中使用datagrid显示数据库里面的内容
如果你设定AutoGenerateColumns就不会自动生成列,需要手动指定datagrid的列。例如:<DataGrid AutoGenerateColumns="False" Height="418" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="316" > <DataGrid.Columns> <DataGridTextColumn Header="列名" Binding="{Binding...

WPF编程里让TextBlock动态的显示时间
<\/Grid> <\/Window> CS代码部分:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System....

C# WPF 后台代码怎样实现 RenderTransform 效果呢?
public MainWindow() { InitializeComponent(); \/\/grid1里面的button反过来了 grid1.RenderTransformOrigin = new Point(0.5, 0.5); ScaleTransform sctr = new ScaleTransform(); sctr.ScaleY = 1; sctr.ScaleX = -1; TransformGroup trfg = new TransformGroup(); ...

相似回答