WPF Animieren Fenster Sichtbarkeit Ändern
Ich versuche, herauszufinden, wie zu animieren, den Wechsel von Sichtbar auf Versteckt für ein WPF-Fenster. Die Art, wie ich derzeit die Anwendung funktioniert, ist, dass das Fenster ist normalerweise versteckt, und wenn ich bewegen Sie die Maus an den Bildschirmrand, öffnet es sich, ich bin mit einem boolean Sichtbarkeit Konverter zu tun, sondern das, was ich möchte zu tun ist, um die Anwendung schieben mehr reibungslos mit der Maus über als auch die Folie wieder danach.
Ich habe nicht nicht alles, was mit Animationen also ich bin mir nicht sicher, wie dies zu tun. Erstens: ich bin nicht wirklich sicher, was animation die ich verwenden sollte, die dies tun, zweitens bin ich nicht wirklich sicher, ob ich auslösen soll dieser auf der "IsWindowVisibile" - Eigenschaft im viewmodel oder wenn ich binden Sie es an die VisibilityChanged Ereignis und drittens bin ich mir nicht sicher, ob dies möglich ist, wenn die Größe des Fensters ist variabel.
[Bearbeiten]
Wenn nötig, werde ich 'nehmen' "Deckkraft" - Lösung, aber ist das nicht genau die "gleitende" Effekt, den ich versuche zu bekommen.
InformationsquelleAutor John | 2010-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich sowas gemacht (Deckkraft geht auf 0 während 2 Sekunden und das Fenster versteckt): schauen Sie sich nur der code, es ist einfach
MainWindow.xaml:
MainWindow.xaml.cs
Einfach anrufen
HideMe()
oderShowMe()
anstattVisibility = Visibility.Hidden
im codeBearbeiten
WPF langsam ist beim verschieben von Fenstern, so dass, wenn Sie brauchen, Schiebe-animation:
Machen ein transparentes Fenster (
AllowsTransparency="True" Background="Transparent" WindowStyle="None"
)Alle Ihre Steuerelemente auf undurchsichtige panel (
Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}"
)Animieren, dieses panel ist
Margin.Left
aus0
zum FensterActualWidth
, dann ein Fenster auszublenden - dies wird auch entfernen, das problem der Speicherung der FenstergrößeIch möchte mit diesem code für ein DockPanel-Panel, aber das kann ich nicht setzen-Storyboard in das xmal-Datei, wie kann ich es tun ?
Sie müssen erstellen ein storyboard im code, wie
var sb = new Storyboard(); sb.Children.Add(opacityAnimation); sb.Children.Add(visibilityAnimation); sb.Begin(this)
aber warum nicht in der xaml-Datei wie dein Beispiel ? ich versuche es bald ! Dank
In den vorherigen Kommentar du hast gesagt, dass Sie nicht setzen es um xaml, so dass ich vorgeschlagen, nicht-xaml-Weg
InformationsquelleAutor Mykola Bogdiuk
Spielen mit einem Fenster
Opacity
/Visibility
erfordert eine einfacheDoubleAnimation
.Beispiel:
Problem:
Für diese wie erwartet funktionieren, müssen Sie
AllowsTransparency
zuTrue
auf Ihr Fenster. Wenn Sie nicht setzen Sie diese, Ihre Fenster mitOpacity
eingestellt0
wirdBlack
.Das problem ist für diese Eigenschaft zu werden
True
zu können, müssen SieWindowStyle
alsNone
. Was bedeutet, dass keine Rahmen um die Fenster. Das bedeutet, dass nicht schließen, minimieren, maximieren, wiederherstellen Titelleiste.Haben Sie, um eine benutzerdefinierte Vorlage (wahrscheinlich Erben
Window
Klasse), um diese buttons da oben.Dies ist wahrscheinlich passiert, weil wir uns gesetzt, um nicht sichtbar, bevor die animation ausgeführt wird.
InformationsquelleAutor decyclone