मैं मांगों को समझता हूं। बात यह है कि, उन मूल्यों को प्राप्त करने के लिए WPF मेथड हैं - लेकिन हां, एक योगदानकर्ता सही है, सीधे नहीं। समाधान उन सभी वर्कअराउंड को प्राप्त करना नहीं है, बल्कि स्वच्छ डिजाइन और विकास के अनुसार प्रारंभिक दृष्टिकोण को बदलना है।
ए) प्रारंभिक मुख्य विंडो को स्क्रीन पर सेट करें
बी) वास्तविक WPF के लिए उपयोगी WPF विधियों की एक टन सहित मान प्राप्त करें
ग) आप जो व्यवहार करना चाहते हैं उसके लिए आप जितने चाहें उतने विंडोज जोड़ सकते हैं, जैसे रिजिजेबल, जो भी कम से कम हो ... लेकिन अब आप हमेशा लोडेड और रेंडर स्क्रीन का उपयोग कर सकते हैं।
कृपया निम्नलिखित उदाहरण के साथ सावधान रहें, आसपास कुछ कोड है जो उस तरह के दृष्टिकोण का उपयोग करना आवश्यक बनाता है, हालांकि यह काम करना चाहिए (यह आपकी स्क्रीन के प्रत्येक कोनों के लिए अंक देगा): एकल पर कार्य उदाहरण, दोहरी मॉनिटर और विभिन्न रिज़ॉल्यूशन (भीतर मुख्य विंडो क्लास के भीतर):
InitializeComponent();
[…]
ActualWindow.AddHandler(Window.LoadedEvent, new RoutedEventHandler(StartUpScreenLoaded));
नियमित घटना:
private void StartUpScreenLoaded(object sender, RoutedEventArgs e)
{
Window StartUpScreen = sender as Window;
Dispatcher.Invoke(new Action(() =>
{
StartUpScreen.InvalidateVisual();
System.Windows.Point CoordinatesTopRight = StartUpScreen.TranslatePoint(new System.Windows.Point((StartUpScreen.ActualWidth), (0d)), ActualWindow);
System.Windows.Point CoordinatesBottomRight = StartUpScreen.TranslatePoint(new System.Windows.Point((StartUpScreen.ActualWidth), (StartUpScreen.ActualHeight)), ActualWindow);
System.Windows.Point CoordinatesBottomLeft = StartUpScreen.TranslatePoint(new System.Windows.Point((0d), (StartUpScreen.ActualHeight)), ActualWindow);
System.Windows.Application.Current.Resources["StartUpScreenPointTopRight"] = CoordinatesTopRight;
System.Windows.Application.Current.Resources["StartUpScreenPointBottomRight"] = CoordinatesBottomRight;
System.Windows.Application.Current.Resources["StartUpScreenPointBottomLeft"] = CoordinatesBottomLeft;
}), DispatcherPriority.Loaded);
}