zoukankan      html  css  js  c++  java
  • Blend 旋转按钮

    今天在一本书中看到一段关于Blend的使用,所以简单的学习一下,并作一下记录。

    一、创建一个Silverlight for Windows Phone工程界面布局大概如下图

    View Code
     1 <phone:PhoneApplicationPage 
     2     x:Class="BlendPro.MainPage"
     3     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     4     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     5     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
     6     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
     7     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     8     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     9     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    10     FontFamily="{StaticResource PhoneFontFamilyNormal}"
    11     FontSize="{StaticResource PhoneFontSizeNormal}"
    12     Foreground="{StaticResource PhoneForegroundBrush}"
    13     SupportedOrientations="Portrait" Orientation="Portrait"
    14     shell:SystemTray.IsVisible="True">
    15 
    16     <!--LayoutRoot 是放置所有頁面的根資料格-->
    17     <Grid x:Name="LayoutRoot" Background="Transparent">
    18         <Grid.RowDefinitions>
    19             <RowDefinition Height="Auto"/>
    20             <RowDefinition Height="*"/>
    21         </Grid.RowDefinitions>
    22 
    23         <!--TitlePanel 包含應用程式的名稱和頁面標題-->
    24         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    25             <TextBlock x:Name="ApplicationTitle" Text="BlendPro" Style="{StaticResource PhoneTextNormalStyle}"/>
    26             <TextBlock x:Name="PageTitle" Text="Blend Pro" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    27         </StackPanel>
    28 
    29         <!--ContentPanel - 其他內容置於此-->
    30         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    31             <Button Content="Search" Margin="0,0,0,100" Height="72" Click="SchButton_Click" Name="SchButton" Width="180"/>
    32         </Grid>
    33     </Grid>
    34 
    35 </phone:PhoneApplicationPage>
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Net;
     5 using System.Windows;
     6 using System.Windows.Controls;
     7 using System.Windows.Documents;
     8 using System.Windows.Input;
     9 using System.Windows.Media;
    10 using System.Windows.Media.Animation;
    11 using System.Windows.Shapes;
    12 using Microsoft.Phone.Controls;
    13 
    14 namespace BlendPro
    15 {
    16     public partial class MainPage : PhoneApplicationPage
    17     {
    18         // 建構函式
    19         public MainPage()
    20         {
    21             InitializeComponent();
    22         }
    23 
    24         private void SchButton_Click(object sender, RoutedEventArgs e)
    25         {
    26             
    27         }
    28     }
    29 }

    代码很easy
    二、在Blend中打开该程序

    开启方法 :视图->在Expression Blend中开启

    三、添加一个动画故事板(使其在按下按钮时被触发)

    在Objects and Timeline 窗口中,单击“+”按钮。这会创建一个新的故事板,并为其取名为“SearchPressAnimation”然后单击OK按钮。你会看见在Objects and Timeline 窗口中出现一条时间线,同时在主窗口中显示了一个记录图标,表示你正在编辑的故事板。(如图)

    在0.5秒的过程中,我们把SchButton旋转-180度。为此,大约0.5秒标记处单击并移动黄色竖线,该线标示动画的当前点。确保SchButton控件被选中,在Properties窗口的RenderTransform区域中将旋转角度设置为-180。

    接下来在1秒的标记处单击,设置SchButton的角度为-360。按下Play按钮,就可以预览按钮动画了。完成故事板后,单击故事板名称左侧的红色按钮停止编辑故事板。最后关联事件来启动故事板,右击Projects窗口中的Solution节点,选择Edit in Visual Studio返回到VisualStudio,这时回到VisualStudio中要重新载入程序,然后在SchButton的Click事件中启动故事板。

    整个代码如下:

    View Code
     1 <phone:PhoneApplicationPage 
     2     x:Class="BlendPro.MainPage"
     3     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     4     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     5     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
     6     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
     7     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     8     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     9     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    10     FontFamily="{StaticResource PhoneFontFamilyNormal}"
    11     FontSize="{StaticResource PhoneFontSizeNormal}"
    12     Foreground="{StaticResource PhoneForegroundBrush}"
    13     SupportedOrientations="Portrait" Orientation="Portrait"
    14     shell:SystemTray.IsVisible="True">
    15     <phone:PhoneApplicationPage.Resources>
    16         <Storyboard x:Name="SearchPressAnimation">
    17             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="SchButton">
    18                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
    19                 <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="-180"/>
    20                 <EasingDoubleKeyFrame KeyTime="0:0:1" Value="-360"/>
    21             </DoubleAnimationUsingKeyFrames>
    22         </Storyboard>
    23     </phone:PhoneApplicationPage.Resources>
    24 
    25     <!--LayoutRoot 是放置所有頁面的根資料格-->
    26     <Grid x:Name="LayoutRoot" Background="Transparent">
    27         <Grid.RowDefinitions>
    28             <RowDefinition Height="Auto"/>
    29             <RowDefinition Height="*"/>
    30         </Grid.RowDefinitions>
    31 
    32         <!--TitlePanel 包含應用程式的名稱和頁面標題-->
    33         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    34             <TextBlock x:Name="ApplicationTitle" Text="BlendPro" Style="{StaticResource PhoneTextNormalStyle}"/>
    35             <TextBlock x:Name="PageTitle" Text="Blend Pro" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    36         </StackPanel>
    37 
    38         <!--ContentPanel - 其他內容置於此-->
    39         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" RenderTransformOrigin="0.5,0.5">
    40             <Grid.RenderTransform>
    41                 <CompositeTransform/>
    42             </Grid.RenderTransform>
    43             <Button Content="Search" Margin="0,0,0,100" Height="72" Click="SchButton_Click" Name="SchButton" Width="180" RenderTransformOrigin="0.5,0.5" >
    44                 <Button.RenderTransform>
    45                     <CompositeTransform/>
    46                 </Button.RenderTransform>
    47             </Button>
    48         </Grid>
    49     </Grid>
    50 
    51 </phone:PhoneApplicationPage>
    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Net;
     5 using System.Windows;
     6 using System.Windows.Controls;
     7 using System.Windows.Documents;
     8 using System.Windows.Input;
     9 using System.Windows.Media;
    10 using System.Windows.Media.Animation;
    11 using System.Windows.Shapes;
    12 using Microsoft.Phone.Controls;
    13 
    14 namespace BlendPro
    15 {
    16     public partial class MainPage : PhoneApplicationPage
    17     {
    18         // 建構函式
    19         public MainPage()
    20         {
    21             InitializeComponent();
    22         }
    23 
    24         private void SchButton_Click(object sender, RoutedEventArgs e)
    25         {
    26             this.SearchPressAnimation.Begin();
    27         }
    28     }
    29 }
  • 相关阅读:
    HadoopDB:混合分布式系统
    分布式一致性
    Hadoop和RDBMS的混合系统介绍
    《Facebook效应》
    《程序员的思维修炼》
    KMP算法实现
    关于毕业季照片分享的思考
    SDN:软件定义网络
    退出域不能够重新加入域,郁闷呀
    ◆聚会时可以玩的游戏◆
  • 原文地址:https://www.cnblogs.com/qq278360339/p/2502618.html
Copyright © 2011-2022 走看看