# C# WPF - Verstecken der Taskbar nach Maximieren



## pizzastueck (19. Januar 2019)

Hallo zusammen,

ich möchte die Taskbar verstecken wenn ich das Programm maximiere.
Wenn das Programm startet, soll es als Vollbildanwendung starten. Mit den folgenden Eigenschaften geschiet des auch beim Start des Programms.


```
WindowState="Maximized"
WindowStyle="None"
```

Wenn ich allerdings das Window wieder zurück in eine normale Fensteranwendung holen und anschließend wieder maximieren will, bleibt die Taskbar sichtbar. Laut Google soll man die "ResizeMode" Eigentschaft auf "NoResize" stellen, aber das funktioniert bei mir nicht.
Hier der Code aus der Codebehind:


```
public MainWindow()
{

    InitializeComponent();
    StateChanged += MainWindow_StateChanged;

}

private void MainWindow_StateChanged(object sender, EventArgs e)
{
    var state = ((MainWindow)sender).WindowState;

    if(state == WindowState.Normal)
    {
        // When escaping
        ResizeMode = ResizeMode.CanResize;
        WindowStyle = WindowStyle.SingleBorderWindow;
    }
    else if(state == WindowState.Maximized)
    {
        // When maximizing
        ResizeMode = ResizeMode.NoResize;
        WindowStyle = WindowStyle.None;
    }
}

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if(e.Key == Key.Escape)
    {
        WindowState = WindowState.Normal;
    }
}
```


Meine Vermutung ist nun, dass der Klick auf das "Maximieren"-Symbol in der Titlebar zuerst ausgeführt wird und ResizeMode erst später. Dem entsprechend bleibt die Taskbar eingeblendet.

Habt ihr einen Tipp?


----------



## Gimmick (19. Januar 2019)

Die Vermutung ist richtig das "State_Changed" Event erfolgt nach Abschluss der State-Änderung.

Schau mal hier:
.net - Window StateChanging event in WPF - Stack Overflow


----------



## Plasmadampfer (19. Januar 2019)

myCSHARP :: Die deutschsprachige C# Community :: ist eine geile Adresse für Folgefragen.


Den Petzold hast Du nicht, Win32 API, in schierem C eine Message Pump implementieren.


----------



## pizzastueck (20. Januar 2019)

Funktioniert nun mit folgenden Code:


```
Visibility = Visibility.Collapsed;
WindowStyle = WindowStyle.None;
ResizeMode = ResizeMode.NoResize;
Visibility = Visibility.Visible;
```

Danke für die Tipps!


----------



## Gimmick (21. Januar 2019)

pizzastueck schrieb:


> Funktioniert nun mit folgenden Code:
> 
> 
> ```
> ...



Das ist natürlich die Holzhammermethode. Aber wenn man das doppelte Ändern des Fensterformats nicht sieht, find eich das i.O., dnake fürs Posten einer Lösung .


----------

