| 

.NET C# Java Javascript Exception

1
Windows macht animierte Fenster verfügbar. Wie kann ich die Animationseffekte auch in meinen eigenen Windows-Forms-Anwendungen zum Einblenden von Formularen nutzen?
20.01.2011
Todo 11 1 2
2 Antworten
2
Hallo,
hier eine ganz simple Lösung, die ein Formular beim öffnen einblendet:

Dim frm As New Form2

frm.Opacity = 0
frm.Show()
For d As Double = 0.1 To 1.0 Step 0.1
frm.Opacity = d
frm.Refresh()
Threading.Thread.Sleep(100)
Next



Liebe Grüße, Tom
04.02.2011
Metal-Frog 946 1 7
0
Hallo Todo,

ich kann leider nur mit einem C# Schnipsel dienen, ich hatte diesen Effekt in meine WM2010 Applikation eingebaut. Das Portieren nach VB sollte aber nicht unmöglich sein ;)

Die Codeteile die für den Effekt verantwortlich sind, findest du nachfolgend: (Achtung: Ich schließe die Applikation mit einem eigenen ImageButton, dieses müsst sich mit MouseLeftButtonDown an der gleichnamigen Methode hängen)

XAML:
<!-- Window OpenCloseEffect-->
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="app"
Storyboard.TargetProperty="Opacity"
From="0" To="1" Duration="0:0:01"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Window.Unloaded">
<BeginStoryboard>
<Storyboard x:Name="closeStoryBoard" Completed="closeStoryBoard_Completed">
<DoubleAnimation Storyboard.TargetName="app"
Storyboard.TargetProperty="Opacity"
From="1" To="0" Duration="0:0:01"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<!-- End OpenCloseEffect-->


CodeBehind:
private void CloseImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.Closing += Window_Closing;
this.Close();
}
private bool _closeStoryBoardCompleted = false;

private void Window_Closing(object sender, CancelEventArgs e)
{
if (!_closeStoryBoardCompleted)
{
closeStoryBoard.Begin();
e.Cancel = true;
}
}
private void closeStoryBoard_Completed(object sender, EventArgs e)
{
_closeStoryBoardCompleted = true;
this.Close();
}
20.01.2011
Mario Priebe 6,0k 3 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH