C#中怎么利用WPF實(shí)現(xiàn)一個(gè)時(shí)鐘動(dòng)畫(huà)

本篇文章給大家分享的是有關(guān)C#中怎么利用 WPF實(shí)現(xiàn)一個(gè)時(shí)鐘動(dòng)畫(huà),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蕉城做網(wǎng)站,已為上家服務(wù),為蕉城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

布局時(shí)鐘的時(shí)針、分針、秒針,及添加秒針動(dòng)畫(huà),秒針動(dòng)畫(huà)寫(xiě)的比較啰嗦,只寫(xiě)了30秒,其實(shí)可以在MainWindow.xaml.cs文件中用for循環(huán)添加EasingDoubleKeyFrame,直接添加到xaml中占代碼也不美觀,暫時(shí)先這樣吧,下篇文章有空改了。

<Window x:Class="Clock.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:local="clr-namespace:Clock"
       mc:Ignorable="d"
       AllowsTransparency="True" WindowStyle="None" ResizeMode="NoResize"
       Height="520" Width="520" WindowStartupLocation="CenterScreen" Background="{x:Null}">
   <Window.Resources>
       <Storyboard x:Key="sbseconds" RepeatBehavior="Forever">
           <DoubleAnimationUsingKeyFrames Storyboard.TargetName="second" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
               <EasingDoubleKeyFrame KeyTime="0" Value="-90">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:1" Value="-84">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:2" Value="-78">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:3" Value="-72">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:4" Value="-66">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:5" Value="-60">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:6" Value="-54">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:7" Value="-48">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:8" Value="-42">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:9" Value="-36">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:10" Value="-30">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:11" Value="-24">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:12" Value="-18">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:13" Value="-12">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:14" Value="-6">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:15" Value="0">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:16" Value="6">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:17" Value="12">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:18" Value="18">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:19" Value="24">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:20" Value="30">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:21" Value="36">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:22" Value="42">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:23" Value="48">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:24" Value="54">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:25" Value="60">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:26" Value="66">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:27" Value="72">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:28" Value="78">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:29" Value="84">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
               <EasingDoubleKeyFrame KeyTime="00:00:30" Value="90">
                   <EasingDoubleKeyFrame.EasingFunction>
                       <BackEase EasingMode="EaseOut" Amplitude="0.4"/>
                   </EasingDoubleKeyFrame.EasingFunction>
               </EasingDoubleKeyFrame>
           </DoubleAnimationUsingKeyFrames>
       </Storyboard>
   </Window.Resources>
   <Window.Triggers>
       <EventTrigger RoutedEvent="FrameworkElement.Loaded">
           <BeginStoryboard Storyboard="{StaticResource sbseconds}"/>
       </EventTrigger>
   </Window.Triggers>
   <Grid>
       <Border BorderThickness="10" BorderBrush="Black" CornerRadius="300" Width="520" Height="520">
           <Grid Height="500" Width="500" HorizontalAlignment="Center" VerticalAlignment="Center">
               <Border CornerRadius="350">
                   <Border.Background>
                       <ImageBrush ImageSource="Assets/clock.png"/>
                   </Border.Background>
               </Border>

               <Border CornerRadius="350" Background="#778889BB"/>

               <Border x:Name="hour" CornerRadius="0 15 15 0" Height="10" Width="130" BorderThickness="3" BorderBrush="#FF66B01C" Margin="0,245,120,245" HorizontalAlignment="Right" RenderTransformOrigin="0,0.5">
                   <Border.RenderTransform>
                       <TransformGroup>
                           <ScaleTransform/>
                           <SkewTransform/>
                           <RotateTransform Angle="-90"/>
                           <TranslateTransform/>
                       </TransformGroup>
                   </Border.RenderTransform>
               </Border>
               <Border x:Name="minute" CornerRadius="0 15 15 0" Height="5" Width="160" BorderThickness="3" BorderBrush="#FFD15209" Margin="250.5,247,0,248" HorizontalAlignment="Left" RenderTransformOrigin="0,0.5">
                   <Border.RenderTransform>
                       <TransformGroup>
                           <ScaleTransform/>
                           <SkewTransform/>
                           <RotateTransform Angle="-90"/>
                           <TranslateTransform/>
                       </TransformGroup>
                   </Border.RenderTransform>
               </Border>
               <Border x:Name="second" CornerRadius="0 15 15 0" Height="3" Width="220" Background="Red" Margin="0,248,30,248" HorizontalAlignment="Right" RenderTransformOrigin="0,0.5">
                   <Border.RenderTransform>
                       <TransformGroup>
                           <ScaleTransform/>
                           <SkewTransform/>
                           <RotateTransform Angle="-90"/>
                           <TranslateTransform/>
                       </TransformGroup>
                   </Border.RenderTransform>
               </Border>
               <Ellipse Fill="Black" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center"/>
           </Grid>
       </Border>
   </Grid>
</Window>

以上就是C#中怎么利用 WPF實(shí)現(xiàn)一個(gè)時(shí)鐘動(dòng)畫(huà),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:C#中怎么利用WPF實(shí)現(xiàn)一個(gè)時(shí)鐘動(dòng)畫(huà)
網(wǎng)頁(yè)地址:http://bm7419.com/article6/jjceog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、靜態(tài)網(wǎng)站搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司