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

C# 如何以编程方式为网格单元创建边框,c#,wpf,xaml,C#,Wpf,Xaml,在这个XAML代码中,我在网格的两个单元格中放置了一个边框。我需要改变设计,用C#做同样的事情。我知道如何在C#中实例化边框并为其分配属性,但如何将每个边框对象与网格中的正确单元格相关联?(此处命名为“LayoutGrid”)。换句话说,在C中我该怎么做?元素在上面的XAML代码中做了什么?假设myBorder已经是LayoutGrid <Grid x:Name="LayoutGrid" Visibility="Visible" Background="Transparent" Canva

在这个XAML代码中,我在网格的两个单元格中放置了一个边框。我需要改变设计,用C#做同样的事情。我知道如何在C#中实例化边框并为其分配属性,但如何将每个边框对象与网格中的正确单元格相关联?(此处命名为“LayoutGrid”)。换句话说,在C中我该怎么做?元素在上面的XAML代码中做了什么?

假设
myBorder
已经是
LayoutGrid

<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>
您可以使用
Grid
静态方法

var myBorder = new Border();
LayoutGrid.Children.Add(myBorder)
或者直接设置
dependencProperty

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

您需要添加笔刷:

myBorder.SetValue(Grid.ColumnProperty, 0);
myBorder.SetValue(Grid.RowProperty, 1);

那么上面列出的代码就可以工作了。

为什么要这样做?如果这取决于某些条件,您可能希望使用样式或绑定创建边框
Border brdr = new Border() 
{ 
    BorderThickness = new Thickness() 
    { 
        Bottom = 1, 
        Left = 1, 
        Right = 1, 
        Top = 1 
    }, 
    BorderBrush = new SolidColorBrush(Colors.Black) 
};