Dienstag, 28. Mai 2013

Es gibt verschiedene Wege und Möglichkeiten ein Element in XAML zu animieren.

zb.: ein animiertes Label (lblTimer):
<Label Content="0" Height="28" Margin="446,22,0,0" Name="lblTimer" VerticalAlignment="Top" FontFamily="Cooper" Foreground="#FF3D903D" HorizontalContentAlignment="Right" >
<Label.Triggers>
<EventTrigger RoutedEvent="Label.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="lblTimer" Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:1" AutoReverse="True" RepeatBehavior="Forever" ></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Label.Triggers>
</Label>
#xlzznt74-18895 - CSHARP - Sourcecode

Quelle c-SharpCorner - Tutorial von Ashish Shukla

Tags: C#, XAML, Animation,
Kategorie: programmierung

    anzeigen   



In WPF gibt es keinen Timer oder eine Timer Klasse.
Aber die DispatchTimer Klasse kann benutzt werden einen Timer zu erzeugen.

Als Erstes den Namspace angeben.
	using System.Windows.Threading;

Einen neuen Zeitgeber erzeugen und konfigurieren.
	//  DispatcherTimer setup
		dispatcherTimer = new System.Windows.Threading.DispatcherTimer();

	//Tick EventHandler
		dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);

	//Tick interval einstellen und Timer starten.
		dispatcherTimer.Interval = new TimeSpan(0,0,1);
		dispatcherTimer.Start();
Danach den TickHandler erstellen. Hierbei wird ein Label benutzt und diesem die aktuellen Sekunden übergeben.
	//  System.Windows.Threading.DispatcherTimer.Tick handler
	//
	//  Updates the current seconds display and calls
	//  InvalidateRequerySuggested on the CommandManager to force 
	//  the Command to raise the CanExecuteChanged event.
	private void dispatcherTimer_Tick(object sender, EventArgs e)
	{
	    // Updating the Label which displays the current second
	    lblSeconds.Content = DateTime.Now.Second;
	
	    // Forcing the CommandManager to raise the RequerySuggested event
	    CommandManager.InvalidateRequerySuggested();
	}
Eine andere Möglichkeit ist ein Label zu benutzen und in diesem einfach einen Counter hochzählen zu lassen.
	int a = 1;

	private void dispatcherTimer_Tick(object sender, EventArgs e)
	{
            //Get content from Label Timer and add 1
            lblTimer.Content = a;
            a = ++a;
            CommandManager.InvalidateRequerySuggested();
        }
link: http://msdn.microsoft.com/de-de/library/system.windows.threading.dispatchertimer.aspx

link: http://www.c-sharpcorner.com/uploadfile/mahesh/timer-in-wpf/

timer tick c# wpf

Tags: C# Timer, WPF
Kategorie: programmierung

    anzeigen