Laden...

Fullscreen und Taskleiste

Erstellt von Lector vor 14 Jahren Letzter Beitrag vor 14 Jahren 7.982 Views
L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 14 Jahren
Fullscreen und Taskleiste

Hallo,

Ich habe in meiner Anwendung ein Hauptfenster welches im Fullscreen-Modus starten soll. Die Taskleiste soll allerdings sichtbar bleiben und nicht überdeckt werden.


<!--Stil von Fullscreen-Fenstern-->
<Style x:Key="FullscreenWindow" TargetType="{x:Type Window}">
    <Setter Property="Background" Value="{DynamicResource BackgroundBrush}"/>
    <Setter Property="WindowState" Value="Maximized"/>
    <Setter Property="WindowStyle" Value="None"/><!--ohne diese Zeile bleibt die Taskleiste sichtbar-->
    <Setter Property="MinWidth" Value="600"/>
    <Setter Property="MinHeight" Value="400"/>
</Style>

Das funktioniert wunderbar solange ich den Standard-WindowHeader von Windows angezeigt lasse. Sobald ich jedoch WindowStyle auf 'None' setze verschwindet die Taskleiste wenn das Fenster maximiert ist. Wie kann ich das verhindern???

U
1.578 Beiträge seit 2009
vor 14 Jahren
L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 14 Jahren

Ich hab das mit den Interop-Aufrufen mal zum testen eingebaut und es scheint zu funktionieren. Allerdings gefällt mir diese Lösung überhaupt nicht. Ist WPF nicht mal in der Lage Vollbildfenster ohne Rahmen zusammen mit der Taskleiste anzuzeigen???

Ausserdem wird MinWidth und MinHeight nicht mehr beachtet wenn ich diesen Aufruf mache...

U
1.578 Beiträge seit 2009
vor 14 Jahren

scheint so
komische ist nur - ich glaub das auch schonmal gemacht zu haben und hatte keine derartigen probleme - ich schau zuhause nochmal ins projekt wie das war- melde mich

U
1.578 Beiträge seit 2009
vor 14 Jahren

tatsaechlich
bei meiner alten app wird die start leiste auch verdeckt
hatte ich gar nicht gemerkt - meine betatester hattens auch nicht erwaehnt
schande...

L
Lector Themenstarter:in
862 Beiträge seit 2006
vor 14 Jahren

Also ich werds vermutlich auch mal so lassen dass die Startleiste verdeckt wird.
Dadurch dass ich keinen Standard-Border habe ist es wichtig dass das Fenster MinHeight/Width beachtet. Sonst kann man es auf eine ca 4x4px Größe kleinmachen. Und das ist wenig sinnvoll. Ausserdem ist mein Layout auf mindestens 800x600 ausgelegt. Wenn man es kleiner macht sieht alles doof aus...

Ich werde jedoch weiterhin nach einer Möglichkeit die Taskleiste trotz maximierten non-border Window einzublenden.

E
346 Beiträge seit 2007
vor 14 Jahren

Mich stört diese Verhalten ebenfalls. Man könnte eventuell beim Start die aktuelle Auflösung auslesen und das Fenster manuell so skalieren, dass die Taskleiste nicht verdeckt ist.

93 Beiträge seit 2008
vor 14 Jahren

Naja das Problem dabei ist wohl, dass man nicht genau weiß wie groß die Taskleiste ist (also Höhe von Win Vista Startleiste z.B. != Höhe von Win XP Startleiste - denk ich zumindest oder irre ich mich da?)

Gruß,
Tom

U
1.578 Beiträge seit 2009
vor 14 Jahren

nicht nur das - der benutzer kann ja die leiste doppelt oder dreifach hoch haben
kann man sowas messen ?

E
346 Beiträge seit 2007
vor 14 Jahren

nicht nur das - der benutzer kann ja die leiste doppelt oder dreifach hoch haben
kann man sowas messen ?

kann man ohne Probleme.


// Gets an array of all the screens connected to the system.
Screen[] screens = Screen.AllScreens;
upperBound = screens.GetUpperBound(0);

int iSichtbareBreite = screens[0].WorkingArea.Width;
int iSichtbareHoehe  = screens[0].WorkingArea.Height;

dafür werden folgende Sachen benötigt:


using System.Windows.Forms;
using System.Drawing;

5.742 Beiträge seit 2007
vor 14 Jahren

Hallo zusammen,

kann man ohne Probleme.

ja, aber nicht mit deinem Code 😁

Siehe Höhe der Startleiste

U
1.578 Beiträge seit 2009
vor 14 Jahren

oh ja das kenn ich

bestes beispiel ist winamp
wenn eine neue winamp version raus ist kommt so ein popup fenster mit nem download button

unser desktop rechner hat die startleiste oben angedockt
und dieses dumme popup fenster ist immer soweit oben angedockt das man es nicht schliessen kann, auch ein verschieben per "rechtsklick - verschieben" ist nicht moeglich da das fenster selber das nicht ermoeglicht und es kein button in der startleiste hat

entsprechend bekommt man das fenster nicht weg - man muss winamp erst beenden

manch andere applikationen kann man wenigstens noch mit der tastatur soweit runter schieben bis man es richtig benutzen kann

sowas ist mehr als schrecklich