Ich bemerkte, dass beim Überschreiben der System.Windows.Window OnRender-Methode nicht auf den Bildschirm zeichnen kann. Ich bin mir sicher, dass es einen guten Grund dafür gibt, aber ich konnte die Erklärung nicht finden.Warum überschreibt das Überschreiben der WPF Window.OnRender-Methode nicht auf dem Bildschirm?
Der folgende Code zeigt dies:
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);
}
}
}
die Zeichnungslogik in einem Framework ersetzt arbeiten (so ist das Element als Inhalt eines Fensters Einstellung) in Ordnung.
Dank,
Danny
"weiß nicht warum" beantwortet die Frage nicht wirklich, und dieser Fix funktioniert nicht für ItemsControl-Derivate, die MVVM verwenden – user3690202