Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Bei zweiter Taskleiste soll FullScreen den Bereich der zweiten Taskleiste auslassen
Mattes80
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

Bei zweiter Taskleiste soll FullScreen den Bereich der zweiten Taskleiste auslassen

beantworten | zitieren | melden

Hallo

Ich versuche gerade eine 2. Taskleiste für Windows zu erstellen.

Das Grundprinzip funktioniert ja schon. Nur gibt es einen Wichtigen Problem.

Das Problem ist: Das bei alle Windows Programme wenn man auf Maximieren geht auf das ganze Bildschirm geht.

Es müsste so sein das wenn die 2. Taskleiste oben ist und eine Höhe von 80px hat. Das wenn man z.b. das WordPAD auf Maximieren geht. Es dann von Oben nicht bei 0px Anfängt sondern erst bei die 80px.

Genauso wenn die 2. Taskleiste Rechts ist dann ist die Breite auf 80px.

Hoffe mir kann jemand dabei Helfen.

<Window x:Class="Taskleiste.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Taskleiste"
        mc:Ignorable="d"
        Title="MainWindow" Topmost="True" MouseLeave="Window_MouseLeave" MouseEnter="Window_MouseEnter" Width="{DynamicResource {x:Static SystemParameters.MaximumWindowTrackWidthKey}}" Height="80" WindowStyle="None" Top="0" HorizontalAlignment="Left" VerticalAlignment="Top" ResizeMode="NoResize" ShowInTaskbar="False" Left="0" Background="White">
    <Grid>
        
    </Grid>
</Window>

Gruß

Mattes
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

So wie ich deinen Code verstehe, hast du einfach nur ein "topmost window" erstellt.
Eine eigene (zusätzliche) TaskBar wird als "AppBar" bezeichnet: Using Application Desktop Toolbars (AppBar) sowie AppBar using C#.
private Nachricht | Beiträge des Benutzers
Mattes80
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Danke für deine Antwort.

Was für ein Projekt wählt man da dann aus? weil das AppBar finde ich bei Visual Studio nicht. Ich hatte bis jetzt immer das WPF-APP (.net Framework) dann gibt es nich WPF-APP (.net) oder muss man da diese Komponententest-App (Universelle Windows-App) benutzen?

Gruß

Mattes
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

Du mußt einfach den Code aus dem 2. Link übernehmen und entweder in dein WPF-Projekt oder, wie in dem Beispiel, in ein Windows Forms-Projekt, einbinden (das wichtige daran ist der Aufruf der SHAppBarMessage-Funktion per P/Invoke).
private Nachricht | Beiträge des Benutzers
Mattes80
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Ich bekomme es Leider nicht hin.

Hab es auch schon in Form1 versucht.

Ich konnte auch kein Download finden wo man sich das im VS anschauen kann.

Mein Ziel ist es ja nur das wenn man eine Windows Anwendung auf Maximieren tut, das diese dann nicht unter meiner 2. Taskleiste ist.

es müsste doch einfacher gehen oder?
am besten in einer IF anfrage, weil in die Einstellungen kann man ja einstellen ob die 2. Taskleiste einklappbar ist oder nicht.



if this.Height="1" {

// hier der code für die Maximale Windows höhe

} elseif this.Height="80" {

// hier der code für die Maximale Windows höhe

}

private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

Du scheinst das Problem nicht zu verstehen. Das Windows-System muß dies verwalten, da sonst die anderen Fenster ja nichts über deine "TaskBar" wissen (kannst auch mal nach dem Begriff "Desktop working area" suchen).

Du brauchst doch zum Test nur ein neues WinForms-Projekt erstellen und den gesamten Code (unter "full listing") zu kopieren ("Form1" dafür vorher zu "MainForm" umbenennen oder andersherum).
private Nachricht | Beiträge des Benutzers
Mattes80
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

du meinst den Code im Designer Reinkopieren?
private Nachricht | Beiträge des Benutzers
Mattes80
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Hab es nun verstanden.

Nur funktioniert diese nicht. Ich probiere es noch weiter ob ich es hinbekomme.

Wenn nicht dann sende ich diese Fehlermeldungen.

Ich möchte das nicht in Form1 sondern als schon als WPF, will lieber komplett in WPF bleiben.
private Nachricht | Beiträge des Benutzers