Eu entendo as demandas. O fato é que existem métodos WPF para obter esses valores - mas sim, um dos colaboradores está certo, não diretamente. A solução não é obter todas essas soluções alternativas, mas mudar a abordagem inicial de acordo com um design e desenvolvimento limpos.
A) Defina a janela principal inicial para tela
B) Obtenha os valores para a janela atual, incluindo uma tonelada de métodos WPF úteis
C) Você pode adicionar quantas janelas quiser para o comportamento que deseja, como redimensionável, minimizado o que for ... mas agora você sempre pode acessar a Tela Carregada e Renderizada
Tenha cuidado com o exemplo a seguir, existe algum Código que torna necessário o uso desse tipo de abordagem, no entanto, deve funcionar (daria a você os pontos para cada um dos cantos de sua tela): Exemplo de trabalho em single, Monitor duplo e diferentes resoluções (dentro da classe da janela principal primária):
InitializeComponent();
[…]
ActualWindow.AddHandler(Window.LoadedEvent, new RoutedEventHandler(StartUpScreenLoaded));
Evento encaminhado:
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);
}