मैंने देखा कि सिस्टम को ओवरराइड करते समय। Windows.Window OnRender विधि स्क्रीन पर आकर्षित करने में विफल रहता है। मुझे यकीन है कि इसके लिए एक अच्छा कारण है लेकिन स्पष्टीकरण खोजने में असमर्थ था।WPF 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, 0, 600, 400));
dc.DrawEllipse(Brushes.Green, pen, new Point(300, 300), 50, 50);
}
}
}
एक FrameworkElement में ड्राइंग तर्क की जगह (फिर एक विंडो की सामग्री के रूप में तत्व की स्थापना) ठीक काम करते हैं।
धन्यवाद,
डैनी
"पता नहीं क्यों" वास्तव में सवाल का जवाब नहीं देता है, और यह फिक्स आइटम्स कंट्रोल डेरिवेटिव्स के लिए काम नहीं करता है जो एमवीवीएम का उपयोग कर रहे हैं – user3690202