gpt4 book ai didi

c# - 网格中无行和无列子项的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:57 27 4
gpt4 key购买 nike

考虑这个简单的网格:

<Grid x:Name="gridTest" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>

在代码隐藏中,我添加了这段代码:

public MainWindow()
{
InitializeComponent();

Label labTest = new Label { Content = "Test Label" };
gridTest.Children.Add(labTest);
}

结果是:
First Example

请注意标签位于网格的左上角。没关系,因为我没有设置 Grid.Col 和 Grid.Row(使用 Grid.SetColumn() 和 Grid.SetRow())

现在,检查下一个示例:

public MainWindow()
{
InitializeComponent();

Label labTest = new Label { Content = "Test Label", Height = 30, Width = 70 };
gridTest.Children.Add(labTest);
}

我只是为标签添加了高度和宽度。但结果是: Second Example

现在,标签就像集中在网格的第一个单元格中一样,尽管我没有为标签指定网格行或列!我的问题:

  1. 为什么会这样?它是“设计使然”还是错误?
  2. 我可以对第二个示例中的标签做些什么来使其像第一个示例一样,即出现在网格的最顶部和最左侧的 (0,0) 位置添加到 grid.Children 集合时

最佳答案

  1. 这是设计使然。标签实际上总是集中在网格的第一个单元格中。如果不给它尺寸你就看不到它,因为它默认填满整个单元格,但它的内容始终保持左对齐。

  2. 使用 VerticalAlignment 和 Horizo​​ntalAlignment 属性对齐标签本身:

    Label labTest = new Label
    {
    Content = "Test Label",
    Height = 30,
    Width = 70,
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left
    };
    gridTest.Children.Add(labTest);

关于c# - 网格中无行和无列子项的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com