【问题标题】:Programmatical grid Row definition not working编程网格行定义不起作用
【发布时间】:2016-01-25 08:57:52
【问题描述】:

我有一个具有这种结构的窗口:

然后在窗口后面的代码中在构造函数中添加如下代码:

int numRow = 2;
  int numColumn = 3;

  for (int row = 0; row < numRow; row++)
  {
    var rd = new RowDefinition();
    rd.Height = new GridLength(1.0, GridUnitType.Star);
    grdMain.RowDefinitions.Add(rd);
  }

  for (int column = 0; column < numColumn; column++)
  {
    var cd = new ColumnDefinition();
    cd.Width = new GridLength(1.0, GridUnitType.Star);
    grdMain.ColumnDefinitions.Add(cd);
  }

  for (int row = 0; row < numRow; row++)
  {
    for (int column = 0; column < numColumn; column++)
    {
      //var borderImage = new Border();
      //borderImage.BorderThickness = new Thickness(1);
      //borderImage.BorderBrush = new SolidColorBrush(Colors.Red);

      var finalImage = new Image();
      BitmapImage logo = new BitmapImage();
      logo.BeginInit();
      logo.UriSource = new Uri("pack://application:,,,/EasyRun;component/Resources/Images/ITA.png");
      logo.EndInit();
      finalImage.Source = logo;

      //borderImage.Child = finalImage;

      Grid.SetRow(finalImage, row);
      Grid.SetColumn(finalImage, column);
      grdMain.Children.Add(finalImage);
    }

通过这样做,我希望窗口根据父窗口的大小调整行和列的大小。但是发生的情况是,虽然水平拉伸有效,但垂直拉伸无效。

简而言之,我想要的是根据其父窗口大小拉伸列/行的网格

【问题讨论】:

    标签: c# wpf grid rowdefinition columndefinition


    【解决方案1】:

    尝试使用停靠面板而不是堆栈面板

     <DockPanel Name="stpMain">
     <Button DockPanel.Dock="Bottom" Content="AAA" Width="100" Click="Button_Click"></Button>
     <Border BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0" BorderBrush="Red">
       <Grid Name="grdMain"></Grid>
     </Border>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      相关资源
      最近更新 更多