加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

为什么覆盖WPF Window.OnRender方法无法绘制到屏幕?

发布时间:2021-03-14 00:22:41 所属栏目:Windows 来源:网络整理
导读:我注意到,当覆盖System. Windows.Window OnRender方法无法绘制到屏幕.我确定有一个很好的理由,但无法找到解释. 以下代码演示如下: using System;using System.Windows;using System.Windows.Controls;using System.Windows.Media;namespace WpfApplicatio

我注意到,当覆盖System. Windows.Window OnRender方法无法绘制到屏幕.我确定有一个很好的理由,但无法找到解释.

以下代码演示如下:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        Pen pen = new Pen();

        public Window1()
        {
            InitializeComponent();
            pen.Brush = Brushes.Black;
        }

        protected override void OnRender(DrawingContext dc)
        {
            base.OnRender(dc);
            dc.DrawRectangle(Brushes.Black,pen,new Rect(0,600,400));
            dc.DrawEllipse(Brushes.Green,new Point(300,300),50,50);
        }
    }
}

在FrameworkElement中替换绘图逻辑(然后将元素设置为窗口的内容)工作正常.

谢谢,

丹尼

答案由Chales Petzold here提供.

他的答案是“不知道为什么”,但是一则评论正确地表明,将窗口的背景设置为透明修复错误.

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读