首页 > 解决方案 > 如何在标签上保持阴影效果

问题描述

我正在创造一个著名的文字游戏,Lingo。为了更好地阅读它,我添加了阴影效果。创建效果时,会添加阴影。开头可见,改成字母后消失

    public DropShadowEffect drop = new DropShadowEffect
    {
        Color = new Color { A = 0, R = 0, G = 0, B = 0 },
        Direction = 315,
        ShadowDepth = 5,
        Opacity = 1,
        BlurRadius = 5
    };

    public void DrawTextblocks(WrapPanel Word_canvas)
        {
            for (int j = 0; j < 10; j++)
            {
                for (int i = 0; i < letter_lenth; i++)
                {
                    Border Background = new Border
                    {
                        Background = Brushes.DarkBlue,
                        Width = size,
                        Height = 118,
                        Margin = new Thickness(0),
                        BorderBrush = Brushes.DarkGray,
                        BorderThickness = new Thickness(1, 1, 1, 1),
                    };

                    Label Label = new Label
                    {
                        Height = 118,
                        Width = size,
                        FontSize = font_size_letter,
                        Effect = drop,
                        Background = Brushes.Transparent,
                        HorizontalContentAlignment = HorizontalAlignment.Center,
                        VerticalContentAlignment = VerticalAlignment.Center,
                        Foreground = Brushes.White,
                        Content = ".",
                        Margin = new Thickness(0),
                    };

                    Letter_backgrounds[j, i] = Background;
                    Background.Child = Label;
                    Word_canvas.Children.Add(Background);
                    Canvas.SetLeft(Label, i * 118);
                    Canvas.SetTop(Label, j * 118);
                    Letter_labels[j, i] = Label;
                }
            }
        } 

最奇怪的部分是我创建数字的方式相同,但是阴影效果并没有消失。即使在我使用 Lingo 使前景透明和背景变白之后。(请参阅 gif 以获得更好的想法)

public void DrawBalls_F(UniformGrid Ball_canvas_F)
        {
            for (int j = 0; j < 5; j++)
            {
                for (int i = 0; i < 5; i++)
                {
                        lost_numbers_f = lost_numbers_pattern_F1;
                        Border Ball_border = new Border
                        {
                            BorderThickness = new Thickness(5),
                            BorderBrush = new SolidColorBrush(Colors.Transparent),
                            Background = new SolidColorBrush(Colors.DarkBlue),
                            CornerRadius = new CornerRadius(100),
                            Width = 118,
                            Height = 118
                        };

                        Label Ball_label = new Label
                        {
                            Width = 118,
                            Height = 118,
                            Effect = drop,
                            Content = board_f2[j, i],
                            HorizontalContentAlignment = HorizontalAlignment.Center,
                            VerticalContentAlignment = VerticalAlignment.Center,
                            FontSize = font_size_ball,
                            Foreground = new SolidColorBrush(Colors.White),
                            Background = new SolidColorBrush(Colors.Transparent),
                        };

                        Ball_canvas_F.Children.Add(Ball_border);
                        Canvas.SetLeft(Ball_label, i * size);
                        Canvas.SetTop(Ball_label, j * size);
                        Ball_F_L[j, i] = Ball_label;
                        Ball_F_B[j, i] = Ball_border;
                    }
                }
            }
        }

阴影停留在数字而不是字母的原因是什么?

看看会发生什么

标签: c#wpf

解决方案


推荐阅读