C# 如何制作待绘制的透明形状

C# 如何制作待绘制的透明形状,c#,wpf,winforms,C#,Wpf,Winforms,在提问之前,我很抱歉我不是英语母语人士,所以我的句子可能会很尴尬。我的问题如下 public NoteForm() { InitializeComponent(); SetStyle(ControlStyles.SupportsTransparentBackColor, true); this.BackColor = Color.Transparent; } public void PaintOnForm()

在提问之前,我很抱歉我不是英语母语人士,所以我的句子可能会很尴尬。我的问题如下

    public NoteForm()
    {
        InitializeComponent();

        SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        this.BackColor = Color.Transparent;
    }

    public void PaintOnForm()
    {
        System.Drawing.Graphics g = this.CreateGraphics();
        Pen pen = new Pen(System.Drawing.Color.Black, 5);

        g.DrawLine(pen, 0, 0, 50, 50);

        Console.WriteLine("write!");
    }
我正在做一个在透明窗口窗体上绘制的项目。 我用c#来做这个项目。下面是我编写的代码

    public NoteForm()
    {
        InitializeComponent();

        SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        this.BackColor = Color.Transparent;
    }

    public void PaintOnForm()
    {
        System.Drawing.Graphics g = this.CreateGraphics();
        Pen pen = new Pen(System.Drawing.Color.Black, 5);

        g.DrawLine(pen, 0, 0, 50, 50);

        Console.WriteLine("write!");
    }
我也试过了

    public NoteForm()
    {
        InitializeComponent();

        this.BackColor = Color.Blue;
        TransparencyKey = Color.Blue;
    }

    public void PaintOnForm()
    {
        System.Drawing.Graphics g = this.CreateGraphics();
        Pen pen = new Pen(System.Drawing.Color.Black, 5);

        g.DrawLine(pen, 0, 0, 50, 50);

        Console.WriteLine("write!");
    }
当我尝试使背景不透明时,它会正确地绘制线。 但是,当我尝试使背景透明时,不会显示任何线条

如何制作一个透明的窗口窗体以进行绘制


如果有其他方法可以用C#(例如WPF)生成解决方案,请告诉我好吗?

要使WPF窗口透明,需要设置几个属性。Background=“Transparent”、AllowTransparency=“True”和WindowStyle=“None”:


这是WPF还是WinForms?两者是不同的。
    public MainWindow()
    {
        InitializeComponent();

        var line = new Line { Stroke = new SolidColorBrush(Colors.Black), StrokeThickness = 5, X1 = 0, Y1 = 0, X2 = 50, Y2 = 50 };
        this.Canvas.Children.Add(line);
    }