0

我有一个带有多个按钮的网格作为孩子。现在我想给这个 Grid 行一个背景颜色。所以我添加了一个像这样背景颜色的边框

                    Border brd = new Border
                {
                    Margin = new Thickness(0, 2, 0, 2),
                    Background = (SolidColorBrush) Application.Current.Resources["RedBrush"],
                    CornerRadius = new CornerRadius(22),

                };
                Grid.SetColumn(brd,startColumn);
                Grid.SetColumnSpan(brd, 9- startColumn);
                Grid.SetRow(brd, startRow);
                GridMain.Children.Add(brd);

对我来说一切都很好,但是当它被渲染时,所有按钮都被隐藏了,因为边框的背景颜色只在行中可见。我该如何克服呢?

如果我在 Xaml 中添加,而不是从后面的代码中添加边框,一切正常(边框背景作为按钮背景可见,按钮文本可见)

   <Border  Grid.Row="5"  Grid.Column="1" Grid.ColumnSpan="8" Background="{StaticResource RedBrush}" CornerRadius="22" Margin="0 2 0 2" />

但是由于各种原因,我希望能够从自身后面的代码中添加此边框。

4

1 回答 1

1

如果要设置Grid的背景颜色,可以直接使用Grid.Background来设置,无需添加新的Border。

但是如果需要添加Border作为背景,请注意代码中的调用顺序。

一般来说,后面添加的元素会放在前一个元素的顶层,形成覆盖的视觉效果。

从你的问题描述。可以先放上加边框的代码。

谢谢。

于 2020-06-15T08:14:24.363 回答