2017-06-13 98 views
1

我無法以涵蓋任務欄的方式獲取我的應用程序全屏。代碼已經多年保持不變,在Windows 7中工作正常,但現在轉向Windows 10,我發現在不同的機器上,行爲是不同的。使WPF應用程序全屏幕(封面任務欄)可靠

這裏是在某些機器上會發生什麼:

enter image description here

它應該從邊緣fullsrceen沒有任務欄邊,而是有一個半透明任務欄。如果我切換到窗口模式,大小不會縮小,任務欄不再透明。這兩種情況都是由任務欄覆蓋的。

這裏是我的代碼:

<controls:MetroWindow x:Class="A...MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
    xmlns:views="clr-namespace:App.Views" 
    xmlns:controls1="clr-namespace:App.Controls" 
    Title="App" 
    Height="768" 
    Width="1024" 
    IgnoreTaskbarOnMaximize="True" // 
    WindowStyle="None"    // This should do the trick 
    WindowState="Maximized"   // 
    DataContext="{Binding MainWindowViewModel, Source={StaticResource ViewModelLocator}}" 

我已閱讀並thisthis但它沒有這樣做的伎倆。設置大小有可能與它有關嗎?我發現它很奇怪,它可以在我的開發PC上正常工作,但在其他一些機器上,我得到了描述的行爲。

+1

試圖設置ResizeMode =「NoResize」? – Evk

+0

我已經嘗試過了,但總的來說我想要在那裏調整大小。問題是在不同的PC上完成不同的工作。 –

回答

2

那麼,如果這些工作不,我想你應該使用Topmost="True"

如果你不想讓它打擾其他應用程序時WindowState = Normal,您可以添加這些事件到你的窗口:

private void Window_Activated(object sender, EventArgs e) 
{ 
    // When window got focused 
    Topmost = true; 
} 

private void Window_Deactivated(object sender, EventArgs e) 
{ 
    // When window lost focus 
    Topmost = false; 
}