2016-01-26 34 views
6

Potrzebuję zmienić pasek zadań systemu Windows w mojej aplikacji WPF. W tym celu ustawiam WindowStyle="None", co oznacza wyłączanie paska zadań Windows i tworzenie niestandardowego paska zadań z przyciskami do przywracania, minimalizowania i zamykania aplikacji. Teraz mój problem polega na tym, że aplikacja jest w trybie maksymalizacji, wtedy nie widzę menu startowego w oknach.Jak zrobić tryb pełnoekranowy, bez zasłaniania paska zadań za pomocą: wpf C#

Znalazłem podobne pytanie tutaj, ale kiedy próbowałem tego kodu, nie skompilowałem. full screen mode, but don't cover the taskbar

Jak mogę utworzyć własny pasek zadań i zobaczyć menu startowe systemu Windows, gdy zmaksymalizuję? Czy istnieje okno właściwości w Xaml, które może je ustawić?

Odpowiedz

9

Możesz spróbować tego:

MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight; 
MaxWidth = SystemParameters.MaximizedPrimaryScreenWidth; 
+0

Działa dzięki za pomoc. –

+0

Nie ma za co: 9 – Pikoh

0
WindowStyle="None" 
AllowsTransparency="True" 

i

this.Top = 0; 
this.Left = 0; 
this.Width = SystemParameters.WorkArea.Width; 
this.Height = SystemParameters.WorkArea.Height; 
0

Proponowane rozwiązanie pracował dla mnie ale jeszcze trzeba poprawić piksel na cal wartości ustawiających za okno ma mieć odpowiedni rozmiar niezależnie ustawień użytkownika:

w XAML:

WindowStyle="None" WindowState="Maximized" ResizeMode="NoResize" 

w kodzie:

public MainWindow() 
{ 
    InitializeComponent(); 
    var graphics = System.Drawing.Graphics.FromHwnd(IntPtr.Zero); 
    var pixelWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width ; 
    var pixelHeight = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; 
    var pixelToDPI = 96.0/graphics.DpiX ; 
    this.Width = pixelWidth * pixelToDPI; 
    this.Height = pixelHeight * pixelToDPI; 
    this.Left = 0; 
    this.Top = 0; 
    this.WindowState = WindowState.Normal; 
}