None
None

Reputation: 5670

Border element with a background hides the other element under it. (UWP)

I have a grid with multiple buttons as children. Now I want to give this Grid rows a background color. So I added a border with a background color like this

                    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);

All looks good to me, But when this is rendered all buttons are hidden as the Background color of Border only is visible in the row. How can I overcome this?

Instead of adding the Border from code behind, If I added in Xaml all works fine (border background is visible as button background and button text is visible)

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

But for various reasons I wan the ability to add this border from code behind itself.

Upvotes: 0

Views: 204

Answers (1)

Anran Zhang
Anran Zhang

Reputation: 7727

If you want to set the background color for Grid, you can directly use Grid.Background to set, without adding a new Border.

But if you need to add a Border as a background, please pay attention to the calling sequence in the code.

Generally speaking, the element added later will be placed on the top layer of the previous element, forming a visual effect of covering.

From your problem description. You can put the code that adds Border first.

Thanks.

Upvotes: 1

Related Questions