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
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#.
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
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).
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
}
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).
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.