Windows Phone 7 技巧三則

來源:互聯網
上載者:User

Windows Phone 7開發中涉及到許多技巧,下面就三個小技巧與大家分享,分別如下: 

1. 設定應用程式的表徵圖
2. Windows Phone 7中的啟動畫面
3. 設定應用程式的橫排顯示

1. 設定應用程式的表徵圖

右擊Wp7應用程式的解決方案,選擇屬性,設定Icon為自己想要的圖片,如

並且要確保圖片的build方式為Content,如。最終的運行效果如下

 

2. Windows Phone 7中的啟動畫面

預設情況下,Windows Phone 7 應用程式會使用如下的預設圖片作為程式的啟動畫面,我們可以自己設定Windows Phone 7中的啟動畫面,可以設定為:1.使用自己的圖片作為啟動畫面 2. 帶動畫效果的啟動畫面 3.不使用啟動畫面

對於1,我們只要將SplashScreenImage替換為自己的圖片即可。而對於3,如果不想使用啟動畫面,我們只需將SplashScreenImage圖片移出項目即可。下面著重講一下如果實現動畫啟動畫面.

 

這裡使用BackgroundWorker類來實現,BackgroundWorker類是開闢一個後台線程來處理一些操作而同時你的UI也能繼續響應使用者操作的類。更多的關於BackgroundWorker類大家可以Google其用法。在WP7的渲染線程中,如果你想要一個持續響應的使用者介面,那麼BackgroundWorker類會變得很有用。你可以監聽你想要做的操作的進程的事件以及操作完成的訊號。我們使用RunWorkerAsync開啟後台操作。
注意:我們不應該在BackgroundWorker類的DoWork去操作使用者介面。我們可以在ProgressChanged 和RunWorkerCompleted事件中去操作與使用者介面相關的操作。關於更多的可以參考MSDN http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker%28VS.95%29.aspx下面開始建立動畫的啟動動畫的步驟
1. 建立WP7項目,並添加名為AnimatedSplashScreen.xaml的使用者控制項(UserControl)
2. 在MainPage.xaml.cs添加如下的命名空間,並且編輯後置代碼如下

using System.Threading;

using System.Windows.Controls.Primitives; public partial class MainPage : PhoneApplicationPage
{
BackgroundWorker backroungWorker;
Popup myPopup;
// Constructor
public MainPage()
{
InitializeComponent();
myPopup = new Popup() { IsOpen = true, Child = new AnimatedSplashScreen() };
backroungWorker = new BackgroundWorker();
RunBackgroundWorker();

}

private void RunBackgroundWorker()
{
backroungWorker.DoWork += ((s, args) =>
{
Thread.Sleep(5000);
});

backroungWorker.RunWorkerCompleted += ((s, args) =>
{
this.Dispatcher.BeginInvoke(() =>
{
this.myPopup.IsOpen = false;
}
);
});
backroungWorker.RunWorkerAsync();
}
}

3. 編輯AnimatedSplashScreen.xaml前台代碼如下

<StackPanel x:Name="LayoutRoot" Background="Black" Height="800" Width="480">
<TextBlock Text="WindowsPhoneGeek Sample Splash Screen" x:Name="text" Foreground="Green" FontSize="65" TextWrapping="Wrap" Margin="0,20,0,0"/>
<Image Source="logo.png" x:Name="logoImage" Stretch="None" Margin="0,0,0,50">
<Image.Projection>
<PlaneProjection/>
</Image.Projection>
</Image>
<toolkit:PerformanceProgressBar IsIndeterminate="True" Foreground="Green"/>
</StackPanel>

並且添加如下的動畫資源

<UserControl.Resources>
<Storyboard x:Key="flippingAnimation" >
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationX)" Storyboard.TargetName="logoImage">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:2" Value="360"/>
</DoubleAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="text">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="White"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:2">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Green"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>

4. 最後編輯其後置代碼如下

public AnimatedSplashScreen()
{
InitializeComponent();
Storyboard flippingAnimation = this.Resources["flippingAnimation"] as Storyboard;
flippingAnimation.Begin();
}

 

3. 設定應用程式的Orientations

 Windows Phone 7預設的Orientations是Portrait 的

 

則切換到橫排是如

 

我們可以做如下的修改 ,將SupportedOrientations設為PortaitOrLandscape,如

 則再次運行程式,切換到橫排時,效果如

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.