Windows phone App 觸控資訊查看
因為小弟我對於遊戲製作有著比較濃厚的資訊,無意間讀到有關手機觸控的資訊測試,我想對於於某些遊戲的製作,這方面的資訊有著極重要的位置存在。下面就demo 如何操作以及資訊如何顯示出來。
MainPage.xaml主要程式:
下面的程式主要建立一個可以測試的區域以及相對應的操作屬性設定
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="我的應用程式" x:Name="ApplicationTitle" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="頁面名稱" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
<TextBlock Text="-------------------------------------------------------" Margin="9,-7,0,0" />
<TextBlock Text="test 區域" x:Name="PageTitle" ManipulationStarted="PageTitle_ManipulationStarted"
ManipulationDelta="PageTitle_ManipulationDelta"
ManipulationCompleted="PageTitle_ManipulationCompleted"
Margin="9,50,0,0" Style="{StaticResource PhoneTextTitle1Style}" Height="243"/>
<TextBlock Text="-------------------------------------------------------" Margin="9,-7,0,0" />
</StackPanel>
<!--ContentPanel - 其他內容置於此-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox Name="List"></ListBox>
</Grid>
MainPage.xaml.cs 主要程式
:
下面的程式從一開始的觸控開始到觸控中手指有無滑動的動作、速度,到最後的離開螢幕的資訊顯示
//觸控開始事件處理
private void PageTitle_ManipulationStarted(object sender, System.Windows.Input.ManipulationStartedEventArgs e)
{
//將觸控的資訊增加到ListBox控制項中
List.Items.Add("ManipulationStarted你的手機剛接觸到PageTitle控制項");
List.Items.Add("接觸點 X:" + e.ManipulationOrigin.X + " Y:" + e.ManipulationOrigin.Y);
List.Items.Add("----------------------------");
}
//觸控過程事件處理
private void PageTitle_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
//將觸控的資訊增加到ListBox控制項中
List.Items.Add("ManipulationDelta的手指在滑動的過程中");
List.Items.Add("變化 Translation X:" + e.DeltaManipulation.Translation.X + " Y" + e.DeltaManipulation.Translation.Y);
List.Items.Add("累積 Cumulative X:" + e.CumulativeManipulation.Translation.X + " Y:" + e.CumulativeManipulation.Translation.Y);
List.Items.Add("線速度 LinearVelocity X:" + e.Velocities.LinearVelocity.X + " Y:" + e.Velocities.LinearVelocity.Y);
List.Items.Add("----------------------------");
}
//觸控結束事件處理
private void PageTitle_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
//將觸控的資訊增加到ListBox控制項中
List.Items.Add("ManipulationCompleted手指離開了螢幕");
List.Items.Add("總的變化 Total Translation X:" + e.TotalManipulation.Translation.X + " Y:" + e.TotalManipulation.Translation.Y);
List.Items.Add("最後的線速度 FinalVeloctive X:" + e.FinalVelocities.LinearVelocity.X + " Y:" + e.FinalVelocities.LinearVelocity.Y + " IsInertial:" + e.IsInertial);
List.Items.Add("----------------------------");
}
操作畫面:
Summary
透過上面的Demo程式就可以得知目前觸控的位置、滑動速度、滑動位置、離開的速度這些資訊。上面的程式歡迎使用,如有引用此文章,請註明此文章連結。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Reference
全平台整合:
Windows Phone 手機開發深度解析