Changing the start up location of a WPF window
Just set WindowStartupLocation, Height, Width, Left, and Top in xaml:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="500" Width="500"
WindowStartupLocation="Manual"
Left="0" Top="0">
</Window>
For people who like me wanted to set the position of the window to the current mouse position, you can do it like this:
myWindow.WindowStartupLocation = WindowStartupLocation.Manual;
myWindow.Left = PointToScreen(Mouse.GetPosition(null)).X;
myWindow.Top = PointToScreen(Mouse.GetPosition(null)).Y;
I like to use WindowStartupLocation="CenterOwner"
(MSDN docs for it)
The caller needs to specify itself as owner for this to work though, such as:
new MyWindow() { Owner = this }.ShowDialog();
Then just define the window height and width, e.g:
<Window ...
Height="400" Width="600"
WindowStartupLocation="CenterOwner"
>
...