Dlaczego nadpisywanie metody WPF Window.OnRender nie rysuje na ekranie?

Zauważyłem, że podczas nadpisywania System.Windows.Window metoda OnRender nie rysuje na ekranie. Jestem pewien, że jest ku temu dobry powód, ale nie udało mi się znaleźć wyjaśnienia.

Poniższy kod demonstruje to:

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, 0, 600, 400));
            dc.DrawEllipse(Brushes.Green, pen, new Point(300, 300), 50, 50);
        }
    }
}

zastąpienie logiki rysunku w elemencie FrameworkElement (a następnie ustawienie elementu jako zawartości okna) działa poprawnie.

dzięki,

Danny

questionAnswers(4)

yourAnswerToTheQuestion