如何以编程方式为网格的单元格创建边框

4
<Grid x:Name="LayoutGrid" Visibility="Visible" Background="Transparent" Canvas.Left="20">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="200"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="50" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="600" />
                </Grid.RowDefinitions>
                <Border Grid.Row="0" Grid.Column="0"  BorderBrush="Black"  BorderThickness="1" />
                <Border Grid.Row="2" Grid.Column="0"  BorderBrush="Black"  BorderThickness="1" />
</Grid>

在这段XAML代码中,我正在将边框放置在网格的两个单元格中。我需要更改设计并以C#代替执行相同操作。我知道如何在C#中实例化一个Border并分配属性,但是如何将每个Border对象与网格中的正确单元格关联起来?(此处命名为'LayoutGrid')。换句话说,我如何在C#中执行上述XAML代码的<Grid>元素的功能?


为什么你想要这样做?如果这取决于某些条件,你可能想以一种样式或使用绑定来创建边框。 - ShayD
2个回答

5
假设 myBorder 已经是 LayoutGrid 的子对象。
var myBorder = new Border();
LayoutGrid.Children.Add(myBorder)

您可以使用 Grid 的静态方法

Grid.SetColumn(myBorder, 0);
Grid.SetRow(myBorder, 1);

或者直接设置DependencyProperty
myBorder.SetValue(Grid.ColumnProperty, 0);
myBorder.SetValue(Grid.RowProperty, 1);

5

您需要添加一个Brush:

Border brdr = new Border() 
{ 
    BorderThickness = new Thickness() 
    { 
        Bottom = 1, 
        Left = 1, 
        Right = 1, 
        Top = 1 
    }, 
    BorderBrush = new SolidColorBrush(Colors.Black) 
};

那么上面列出的代码将会有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接