Noté que al anular el método System.Windows.Window OnRender no se dibuja en la pantalla. Estoy seguro de que hay una buena razón para esto, pero no pude encontrar la explicación.¿Por qué la anulación del método WPF Window.OnRender no se dibuja en la pantalla?
El código siguiente muestra esto:
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);
}
}
}
sustituir la lógica de dibujo en un FrameworkElement (a continuación, establecer el elemento como el contenido de una ventana) funcionar bien.
gracias,
Danny
"no sé por qué" realmente no responde la pregunta, y este arreglo no funciona para derivados de ItemsControl que están usando MVVM – user3690202