2016-03-09 89 views
0

是否可以將XAML中WPF窗口的手動啓動位置設置爲從右下角的角落開始?我可以在後臺執行代碼,但是當窗口打開時,它會彈出到手動位置(屏幕的中間左側),然後跳轉到屏幕的右下角,看起來不太好。將XAML中WPF窗口的啓動位置更改爲右下

我可以用這個編碼設置的位置在角落裏的左上角的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> 

我可以做屏幕的右下角同樣使用XAML編碼,以適應任何屏幕尺寸?

+1

不確定它是否只能在XAML中完成,但您可以隨時隱藏窗口,然後在將其移至正確位置以避免「跳躍」後顯示它。 –

+0

@NemanjaBanda這是個好主意!我甚至沒有想到這一點; P我如何隱藏窗戶?我使用了'this.Visibility = Visibility.Hidden',但它給了我一個錯誤。 – CareTaker22

+0

你正在使用什麼事件?如果我在XAML中放置'Visibility =「Collapsed」',然後在'ContentRendered'事件中設置'this.Visibility = System.Windows.Visibility.Visible',對我來說工作得很好。 –

回答

3

我認爲這是不可能通過xaml來設置。但是,您甚至可以在窗口加載之前將其設置爲不會從手動位置跳轉。

public MainWindow() 
{ 
    InitializeComponent(); 
    Left = System.Windows.SystemParameters.WorkArea.Width - Width; 
    Top = System.Windows.SystemParameters.WorkArea.Height - Height; 
} 
+0

這應該工作。 –

+0

這對我來說真是謝天謝地! – CareTaker22

+0

@ CareTaker22隨時歡迎您! – Gopichandar

1

設置WindowStartupLocation="Manual"XAML

然後在Window_Loaded設置的位置一樣,

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    var desktopWorkingArea = System.Windows.SystemParameters.WorkArea; 
    this.Left = desktopWorkingArea.Right - this.Width; 
    this.Top = desktopWorkingArea.Bottom - this.Height; 
} 
+0

感謝您的答案男人,但正如我在我原來的問題中提到的,我已經試過這個,窗口跳轉手動位置到屏幕的右下角。它看起來不太好。 – CareTaker22