Když jsem si začal hrát s WPF tak první věc co se mi myslím trošku povedla, byly analogové hodiny jako userControl. Bylo to překvapivě snadné a tak se o řešení podělím. Nevýhodou userControlu je, že hodiny mají pevnou velikost, sice chvilku snaha na nápravu byla, ale už nebyl čas.

A samozřejmě kód v c#, který hodiny rozběhá:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Timers;
using System.Windows.Threading;
namespace CashDeskVision
{
///
/// Interaction logic for Clock.xaml
///
public partial class Clock : UserControl
{
private RotateTransform minuteRotateTransform;
private RotateTransform hourRotateTransform;
private RotateTransform secondRotateTransform;
public delegate void TickTackHandler(Object sender, EventArgs e);
DispatcherTimer secondTimer = new DispatcherTimer();
public string Text {
get {
return this.text.Text;
}
set {
this.text.Text = value;
}
}
public Clock()
{
this.InitializeComponent();
SetTime(DateTime.Now);
secondTimer.Tick += new EventHandler(secondTimer_Tick);
secondTimer.Interval = new TimeSpan(0, 0, 1);
secondTimer.Start();
}
void secondTimer_Tick(object sender, EventArgs e)
{
SetTime(DateTime.Now);
}
private void SetTime(DateTime time)
{
minuteRotateTransform = new RotateTransform(time.Minute * 6, 0, 0);
this.minute.RenderTransform = minuteRotateTransform;
hourRotateTransform = new RotateTransform(time.Hour * 30, 0, 0);
this.hour.RenderTransform = hourRotateTransform;
secondRotateTransform = new RotateTransform(time.Second * 6, 0, 0);
this.second.RenderTransform = secondRotateTransform;
}
}
}
Příspěvek vyšel v Pátek 27.11.2009 09:45 v kategorii Programování a byl 11881x zobrazen. Pokud se vám líbil můžete si jej zalinkovat: Linkuj.cz, Del.icio.us
"A jedeme dál ..." Človíčkův Weblog aneb Michal Horák bloguje. (c) Michal Horák (Človíček webdesign) 2006