Talepleri anlıyorum. Mesele şu ki, bu değerleri elde etmek için WPF Yöntemleri var - ama evet, katkıda bulunanlardan biri haklı, doğrudan değil. Çözüm, tüm bu geçici çözümleri elde etmek değil, ilk yaklaşımı temiz Tasarım ve Geliştirmeye göre değiştirmektir.
A) İlk Ana Pencereyi Ekrana Ayarlayın
B) Bir ton kullanışlı WPF Yöntemini içeren ActualWindow için Değerleri Alın
C) Yeniden boyutlandırılabilir, simge durumuna küçültülmüş gibi sahip olmak istediğiniz davranış için istediğiniz kadar Windows ekleyebilirsiniz… ancak artık her zaman Yüklenen ve Oluşturulan Ekrana erişebilirsiniz
Lütfen aşağıdaki örneğe dikkat edin, etrafta bu tür bir yaklaşımı kullanmayı gerekli kılan bazı Kurallar vardır, ancak işe yaraması gerekir (Size Ekranınızın her bir Köşesi için Puanlar verecektir): Tekli Çalışma Örneği, Çift Monitör ve farklı Çözünürlükler (Primal Ana Pencere Sınıfı İçinde):
InitializeComponent();
[…]
ActualWindow.AddHandler(Window.LoadedEvent, new RoutedEventHandler(StartUpScreenLoaded));
Yönlendirilmiş Olay:
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);
}