码迷,mamicode.com
首页 > Windows程序 > 详细

WPF模拟时钟制作

时间:2015-07-19 21:21:05      阅读:708      评论:0      收藏:0      [点我收藏+]

标签:

        近日因为项目需求,所以才花了一个晚上的时间来学习和制作WPF模拟时钟。本想着参考网上的WPF模拟时钟控件,但多数过于简单。也有一些模拟时钟确实制作的非常精美,但使用了GDI+技术,而非我需要的WPF时钟控件。好了,下面给出我制作的WPF模拟时钟的运行截图吧:

        技术分享

        色彩方面只是用了黑色,白色,蓝色等鲜明的颜色,看起来没有特别绚丽,当然,如果需要,可以设置成需要的绚丽的颜色等。

        以下是该模拟时钟的XAML代码部分:

技术分享
  1 <Window x:Class="AnalogClockProject.MainWindow"
  2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4         Title="MainWindow" Height="350" Width="525">
  5     <Canvas Width="240" Height="240">
  6         <TextBlock Name="dateTB" Foreground="Black" Text="2014年10月06日" FontFamily="12" Canvas.Left="76" Canvas.Top="52"></TextBlock>
  7         <TextBlock Name="weekDayTB" Foreground="Black" Text="" FontSize="12" Canvas.Left="103" Canvas.Top="67"></TextBlock>
  8         <!--<TextBlock Text="西安电子科技大学" FontSize="12" Foreground="DarkCyan" Canvas.Left="73" Canvas.Top="171"></TextBlock>-->
  9         <!--Center Point-->
 10         <!--<Ellipse Width="4" Height="4" Fill="Black" Canvas.Left="118" Canvas.Top="118"></Ellipse>-->
 11         <!--HourHand-->
 12         <Polygon Name="HourHand" Stroke="Black" StrokeThickness="0" Points="0, 0 4, -10 0, -85 -4, -10" Fill="Black"
 13                  Canvas.Left="120" Canvas.Top="130" Opacity="1">
 14             <Polygon.RenderTransform>
 15                 <RotateTransform x:Name="HoursAngle" CenterX="0" CenterY="-10" Angle="0"></RotateTransform>
 16             </Polygon.RenderTransform>
 17         </Polygon>
 18         <!--MinuteHand-->
 19         <Polygon Name="MinuteHand" Stroke="Black" StrokeThickness="0" Points="0, 0 2, -10 0, -100 -2, -10" Fill="DarkMagenta"
 20                  Canvas.Left="120" Canvas.Top="130" Opacity="1">
 21             <Polygon.RenderTransform>
 22                 <RotateTransform x:Name="MinutesAngle" CenterX="0" CenterY="-10" Angle="0"></RotateTransform>
 23             </Polygon.RenderTransform>
 24         </Polygon>
 25         <!--SecondHand-->
 26         <Rectangle Name="SecondHand" Opacity="1" Fill="Blue" Width="2" Height="106" Canvas.Left="119" Canvas.Top="20">
 27             <Rectangle.RenderTransform>
 28                 <RotateTransform x:Name="SecondsAngle" CenterX="1" CenterY="100" Angle="0"></RotateTransform>
 29             </Rectangle.RenderTransform>
 30         </Rectangle>
 31 
 32         <!--第一圈-->
 33         <Ellipse Width="240" Height="240" StrokeThickness="2" Stroke="Black"></Ellipse>
 34         <!--第二圈-->
 35         <Ellipse Margin="4" Height="232" Width="232" StrokeThickness="1" Stroke="Black"/>
 36         <!--大刻度-->
 37         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 38             <Ellipse.RenderTransform>
 39                 <RotateTransform CenterX="2" CenterY="110" Angle="0"></RotateTransform>
 40             </Ellipse.RenderTransform>
 41         </Ellipse>
 42         <TextBlock Text="12" FontSize="12" FontFamily="Console" Canvas.Left="113" Canvas.Top="20">
 43         </TextBlock>
 44 
 45         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 46             <Ellipse.RenderTransform>
 47                 <RotateTransform CenterX="2" CenterY="110" Angle="30"></RotateTransform>
 48             </Ellipse.RenderTransform>
 49         </Ellipse>
 50         <TextBlock Text="1" FontSize="12" FontFamily="Console" Canvas.Left="162" Canvas.Top="30">
 51         </TextBlock>
 52 
 53         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 54             <Ellipse.RenderTransform>
 55                 <RotateTransform CenterX="2" CenterY="110" Angle="60"></RotateTransform>
 56             </Ellipse.RenderTransform>
 57         </Ellipse>
 58         <TextBlock Text="2" FontSize="12" FontFamily="Console" Canvas.Left="199" Canvas.Top="65">
 59         </TextBlock>
 60 
 61         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 62             <Ellipse.RenderTransform>
 63                 <RotateTransform CenterX="2" CenterY="110" Angle="90"></RotateTransform>
 64             </Ellipse.RenderTransform>
 65         </Ellipse>
 66         <TextBlock Text="3" FontSize="12" FontFamily="Console" Canvas.Left="213" Canvas.Top="114">
 67         </TextBlock>
 68 
 69         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 70             <Ellipse.RenderTransform>
 71                 <RotateTransform CenterX="2" CenterY="110" Angle="120"></RotateTransform>
 72             </Ellipse.RenderTransform>
 73         </Ellipse>
 74         <TextBlock Text="4" FontSize="12" FontFamily="Console" Canvas.Left="199" Canvas.Top="162">
 75         </TextBlock>
 76 
 77         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 78             <Ellipse.RenderTransform>
 79                 <RotateTransform CenterX="2" CenterY="110" Angle="150"></RotateTransform>
 80             </Ellipse.RenderTransform>
 81         </Ellipse>
 82         <TextBlock Text="5" FontSize="12" FontFamily="Console" Canvas.Left="163" Canvas.Top="196">
 83         </TextBlock>
 84 
 85         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 86             <Ellipse.RenderTransform>
 87                 <RotateTransform CenterX="2" CenterY="110" Angle="180"></RotateTransform>
 88             </Ellipse.RenderTransform>
 89         </Ellipse>
 90         <TextBlock Text="6" FontSize="12" FontFamily="Console" Canvas.Left="117" Canvas.Top="206">
 91         </TextBlock>
 92 
 93         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
 94             <Ellipse.RenderTransform>
 95                 <RotateTransform CenterX="2" CenterY="110" Angle="210"></RotateTransform>
 96             </Ellipse.RenderTransform>
 97         </Ellipse>
 98         <TextBlock Text="7" FontSize="12" FontFamily="Console" Canvas.Left="71" Canvas.Top="196">
 99         </TextBlock>
100 
101         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
102             <Ellipse.RenderTransform>
103                 <RotateTransform CenterX="2" CenterY="110" Angle="240"></RotateTransform>
104             </Ellipse.RenderTransform>
105         </Ellipse>
106         <TextBlock Text="8" FontSize="12" FontFamily="Console" Canvas.Left="35" Canvas.Top="162">
107         </TextBlock>
108 
109         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
110             <Ellipse.RenderTransform>
111                 <RotateTransform CenterX="2" CenterY="110" Angle="270"></RotateTransform>
112             </Ellipse.RenderTransform>
113         </Ellipse>
114         <TextBlock Text="9" FontSize="12" FontFamily="Console" Canvas.Left="22" Canvas.Top="113">
115         </TextBlock>
116 
117         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
118             <Ellipse.RenderTransform>
119                 <RotateTransform CenterX="2" CenterY="110" Angle="300"></RotateTransform>
120             </Ellipse.RenderTransform>
121         </Ellipse>
122         <TextBlock Text="10" FontSize="12" FontFamily="Console" Canvas.Left="35" Canvas.Top="65">
123         </TextBlock>
124 
125         <Ellipse Width="4" Height="8" Fill="Black" Canvas.Left="118" Canvas.Top="10">
126             <Ellipse.RenderTransform>
127                 <RotateTransform CenterX="2" CenterY="110" Angle="330"></RotateTransform>
128             </Ellipse.RenderTransform>
129         </Ellipse>
130         <TextBlock Text="11" FontSize="12" FontFamily="Console" Canvas.Left="70" Canvas.Top="30">
131         </TextBlock>
132         <!--小刻度-->
133         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
134             <Rectangle.RenderTransform>
135                 <RotateTransform CenterX="1" CenterY="108" Angle="6"></RotateTransform>
136             </Rectangle.RenderTransform>
137         </Rectangle>
138 
139         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
140             <Rectangle.RenderTransform>
141                 <RotateTransform CenterX="1" CenterY="108" Angle="12"></RotateTransform>
142             </Rectangle.RenderTransform>
143         </Rectangle>
144 
145         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
146             <Rectangle.RenderTransform>
147                 <RotateTransform CenterX="1" CenterY="108" Angle="18"></RotateTransform>
148             </Rectangle.RenderTransform>
149         </Rectangle>
150 
151         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
152             <Rectangle.RenderTransform>
153                 <RotateTransform CenterX="1" CenterY="108" Angle="24"></RotateTransform>
154             </Rectangle.RenderTransform>
155         </Rectangle>
156 
157         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
158             <Rectangle.RenderTransform>
159                 <RotateTransform CenterX="1" CenterY="108" Angle="36"></RotateTransform>
160             </Rectangle.RenderTransform>
161         </Rectangle>
162 
163         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
164             <Rectangle.RenderTransform>
165                 <RotateTransform CenterX="1" CenterY="108" Angle="42"></RotateTransform>
166             </Rectangle.RenderTransform>
167         </Rectangle>
168 
169         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
170             <Rectangle.RenderTransform>
171                 <RotateTransform CenterX="1" CenterY="108" Angle="48"></RotateTransform>
172             </Rectangle.RenderTransform>
173         </Rectangle>
174 
175         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
176             <Rectangle.RenderTransform>
177                 <RotateTransform CenterX="1" CenterY="108" Angle="54"></RotateTransform>
178             </Rectangle.RenderTransform>
179         </Rectangle>
180 
181         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
182             <Rectangle.RenderTransform>
183                 <RotateTransform CenterX="1" CenterY="108" Angle="66"></RotateTransform>
184             </Rectangle.RenderTransform>
185         </Rectangle>
186 
187         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
188             <Rectangle.RenderTransform>
189                 <RotateTransform CenterX="1" CenterY="108" Angle="72"></RotateTransform>
190             </Rectangle.RenderTransform>
191         </Rectangle>
192 
193         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
194             <Rectangle.RenderTransform>
195                 <RotateTransform CenterX="1" CenterY="108" Angle="78"></RotateTransform>
196             </Rectangle.RenderTransform>
197         </Rectangle>
198 
199         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
200             <Rectangle.RenderTransform>
201                 <RotateTransform CenterX="1" CenterY="108" Angle="84"></RotateTransform>
202             </Rectangle.RenderTransform>
203         </Rectangle>
204 
205         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
206             <Rectangle.RenderTransform>
207                 <RotateTransform CenterX="1" CenterY="108" Angle="96"></RotateTransform>
208             </Rectangle.RenderTransform>
209         </Rectangle>
210 
211         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
212             <Rectangle.RenderTransform>
213                 <RotateTransform CenterX="1" CenterY="108" Angle="102"></RotateTransform>
214             </Rectangle.RenderTransform>
215         </Rectangle>
216 
217         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
218             <Rectangle.RenderTransform>
219                 <RotateTransform CenterX="1" CenterY="108" Angle="108"></RotateTransform>
220             </Rectangle.RenderTransform>
221         </Rectangle>
222 
223         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
224             <Rectangle.RenderTransform>
225                 <RotateTransform CenterX="1" CenterY="108" Angle="114"></RotateTransform>
226             </Rectangle.RenderTransform>
227         </Rectangle>
228 
229         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
230             <Rectangle.RenderTransform>
231                 <RotateTransform CenterX="1" CenterY="108" Angle="126"></RotateTransform>
232             </Rectangle.RenderTransform>
233         </Rectangle>
234 
235         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
236             <Rectangle.RenderTransform>
237                 <RotateTransform CenterX="1" CenterY="108" Angle="132"></RotateTransform>
238             </Rectangle.RenderTransform>
239         </Rectangle>
240 
241         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
242             <Rectangle.RenderTransform>
243                 <RotateTransform CenterX="1" CenterY="108" Angle="138"></RotateTransform>
244             </Rectangle.RenderTransform>
245         </Rectangle>
246 
247         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
248             <Rectangle.RenderTransform>
249                 <RotateTransform CenterX="1" CenterY="108" Angle="144"></RotateTransform>
250             </Rectangle.RenderTransform>
251         </Rectangle>
252 
253         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
254             <Rectangle.RenderTransform>
255                 <RotateTransform CenterX="1" CenterY="108" Angle="156"></RotateTransform>
256             </Rectangle.RenderTransform>
257         </Rectangle>
258 
259         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
260             <Rectangle.RenderTransform>
261                 <RotateTransform CenterX="1" CenterY="108" Angle="162"></RotateTransform>
262             </Rectangle.RenderTransform>
263         </Rectangle>
264 
265         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
266             <Rectangle.RenderTransform>
267                 <RotateTransform CenterX="1" CenterY="108" Angle="168"></RotateTransform>
268             </Rectangle.RenderTransform>
269         </Rectangle>
270 
271         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
272             <Rectangle.RenderTransform>
273                 <RotateTransform CenterX="1" CenterY="108" Angle="174"></RotateTransform>
274             </Rectangle.RenderTransform>
275         </Rectangle>
276 
277         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
278             <Rectangle.RenderTransform>
279                 <RotateTransform CenterX="1" CenterY="108" Angle="186"></RotateTransform>
280             </Rectangle.RenderTransform>
281         </Rectangle>
282 
283         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
284             <Rectangle.RenderTransform>
285                 <RotateTransform CenterX="1" CenterY="108" Angle="192"></RotateTransform>
286             </Rectangle.RenderTransform>
287         </Rectangle>
288 
289         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
290             <Rectangle.RenderTransform>
291                 <RotateTransform CenterX="1" CenterY="108" Angle="198"></RotateTransform>
292             </Rectangle.RenderTransform>
293         </Rectangle>
294 
295         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
296             <Rectangle.RenderTransform>
297                 <RotateTransform CenterX="1" CenterY="108" Angle="204"></RotateTransform>
298             </Rectangle.RenderTransform>
299         </Rectangle>
300 
301         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
302             <Rectangle.RenderTransform>
303                 <RotateTransform CenterX="1" CenterY="108" Angle="216"></RotateTransform>
304             </Rectangle.RenderTransform>
305         </Rectangle>
306 
307         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
308             <Rectangle.RenderTransform>
309                 <RotateTransform CenterX="1" CenterY="108" Angle="222"></RotateTransform>
310             </Rectangle.RenderTransform>
311         </Rectangle>
312 
313         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
314             <Rectangle.RenderTransform>
315                 <RotateTransform CenterX="1" CenterY="108" Angle="228"></RotateTransform>
316             </Rectangle.RenderTransform>
317         </Rectangle>
318 
319         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
320             <Rectangle.RenderTransform>
321                 <RotateTransform CenterX="1" CenterY="108" Angle="234"></RotateTransform>
322             </Rectangle.RenderTransform>
323         </Rectangle>
324 
325         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
326             <Rectangle.RenderTransform>
327                 <RotateTransform CenterX="1" CenterY="108" Angle="246"></RotateTransform>
328             </Rectangle.RenderTransform>
329         </Rectangle>
330 
331         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
332             <Rectangle.RenderTransform>
333                 <RotateTransform CenterX="1" CenterY="108" Angle="252"></RotateTransform>
334             </Rectangle.RenderTransform>
335         </Rectangle>
336 
337         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
338             <Rectangle.RenderTransform>
339                 <RotateTransform CenterX="1" CenterY="108" Angle="258"></RotateTransform>
340             </Rectangle.RenderTransform>
341         </Rectangle>
342 
343         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
344             <Rectangle.RenderTransform>
345                 <RotateTransform CenterX="1" CenterY="108" Angle="264"></RotateTransform>
346             </Rectangle.RenderTransform>
347         </Rectangle>
348 
349         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
350             <Rectangle.RenderTransform>
351                 <RotateTransform CenterX="1" CenterY="108" Angle="276"></RotateTransform>
352             </Rectangle.RenderTransform>
353         </Rectangle>
354 
355         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
356             <Rectangle.RenderTransform>
357                 <RotateTransform CenterX="1" CenterY="108" Angle="282"></RotateTransform>
358             </Rectangle.RenderTransform>
359         </Rectangle>
360 
361         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
362             <Rectangle.RenderTransform>
363                 <RotateTransform CenterX="1" CenterY="108" Angle="288"></RotateTransform>
364             </Rectangle.RenderTransform>
365         </Rectangle>
366 
367         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
368             <Rectangle.RenderTransform>
369                 <RotateTransform CenterX="1" CenterY="108" Angle="294"></RotateTransform>
370             </Rectangle.RenderTransform>
371         </Rectangle>
372 
373         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
374             <Rectangle.RenderTransform>
375                 <RotateTransform CenterX="1" CenterY="108" Angle="306"></RotateTransform>
376             </Rectangle.RenderTransform>
377         </Rectangle>
378 
379         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
380             <Rectangle.RenderTransform>
381                 <RotateTransform CenterX="1" CenterY="108" Angle="312"></RotateTransform>
382             </Rectangle.RenderTransform>
383         </Rectangle>
384 
385         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
386             <Rectangle.RenderTransform>
387                 <RotateTransform CenterX="1" CenterY="108" Angle="318"></RotateTransform>
388             </Rectangle.RenderTransform>
389         </Rectangle>
390 
391         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
392             <Rectangle.RenderTransform>
393                 <RotateTransform CenterX="1" CenterY="108" Angle="324"></RotateTransform>
394             </Rectangle.RenderTransform>
395         </Rectangle>
396 
397         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
398             <Rectangle.RenderTransform>
399                 <RotateTransform CenterX="1" CenterY="108" Angle="336"></RotateTransform>
400             </Rectangle.RenderTransform>
401         </Rectangle>
402 
403         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
404             <Rectangle.RenderTransform>
405                 <RotateTransform CenterX="1" CenterY="108" Angle="342"></RotateTransform>
406             </Rectangle.RenderTransform>
407         </Rectangle>
408 
409         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
410             <Rectangle.RenderTransform>
411                 <RotateTransform CenterX="1" CenterY="108" Angle="348"></RotateTransform>
412             </Rectangle.RenderTransform>
413         </Rectangle>
414 
415         <Rectangle Width="2" Height="4" Fill="Black" Canvas.Left="119" Canvas.Top="12">
416             <Rectangle.RenderTransform>
417                 <RotateTransform CenterX="1" CenterY="108" Angle="354"></RotateTransform>
418             </Rectangle.RenderTransform>
419         </Rectangle>
420         <!--<Canvas.Triggers>
421             <EventTrigger RoutedEvent="Canvas.Loaded">
422                 <BeginStoryboard>
423                     <Storyboard Name="ClockAnimation">
424                         <DoubleAnimation Name="SecondAnim"  RepeatBehavior="Forever"
425                                          Storyboard.TargetName="SecondsAngle"
426                                          Storyboard.TargetProperty="Angle"
427                                          To="360" Duration="00:01:00"></DoubleAnimation>
428                         <DoubleAnimation Name="MinuteAnim"  RepeatBehavior="Forever"
429                                          Storyboard.TargetName="MinutesAngle"
430                                          Storyboard.TargetProperty="Angle"
431                                          To="360" Duration="01:00:00"></DoubleAnimation>
432                         <DoubleAnimation Name="HourAnim"  RepeatBehavior="Forever"
433                                          Storyboard.TargetName="HoursAngle"
434                                          Storyboard.TargetProperty="Angle"
435                                          To="360" Duration="12:00:00"></DoubleAnimation>
436                     </Storyboard>
437                 </BeginStoryboard>
438             </EventTrigger>
439         </Canvas.Triggers>-->
440     </Canvas>
441 </Window>
View Code

          下面是模拟时钟的时间更新的C#代码部分。本打算直接在XAML代码中添加Storyboard控制,但后来发现使用C#代码相对灵活些。

技术分享
 1  /// <summary>
 2         /// 定时更新时钟
 3         /// </summary>
 4         public void ClkStartTimer()
 5         {
 6             timer.Interval = TimeSpan.FromSeconds(1);
 7             timer.IsEnabled = true;
 8             timer.Tick += timer_Tick;
 9             timer.Start();
10         }
11 
12         void timer_Tick(object sender, EventArgs e)
13         {
14             //throw new NotImplementedException();
15             SetClockTime();
16         }
17 
18         /// <summary>
19         /// 启动时调用该函数,设定钟表显示为当前计算机时间。
20         /// </summary>
21         public void SetClockTime()
22         {
23             //设置秒针位置:
24             SecondsAngle.Angle = DateTime.Now.Second * 6;
25             //设置分针的位置
26             MinutesAngle.Angle = DateTime.Now.Minute * 6 + (DateTime.Now.Second / 60.0) * 6;
27             //设置时针的位置
28             int hour = DateTime.Now.Hour;
29             if (hour >= 12)
30             {
31                 hour -= 12;
32             }
33             HoursAngle.Angle = hour * 30 + (DateTime.Now.Minute / 2.0);
34             if (DateTime.Now.ToShortTimeString() == "00:00")
35             {
36                 SetClockDate();
37             }
38            
39         }
40 
41         /// <summary>
42         /// 设置日期
43         /// </summary>
44         public void SetClockDate()
45         {
46             dateTB.Text = string.Format("{0}年{1}月{2}日", DateTime.Now.Year,
47                 DateTime.Now.Month, DateTime.Now.Day);
48             string dateStr = DateTime.Now.ToShortDateString();
49             string[] strArr = dateStr.Split(new char[] { - });
50             weekDayTB.Text = strArr[strArr.Length - 1];
51         }
View Code

         至此,使用WPF技术创建的模拟时钟已经可以正常工作了。期间也学习参考了网络上一些大神的代码,在此不一一列举了。总之,希望这篇文章可以对有需要的人有所帮助!

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

WPF模拟时钟制作

标签:

原文地址:http://www.cnblogs.com/chriscabin/p/4659333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!