我正在開發一個windows phone 8.1 silverlight應用程序,我想在我的頁面之間提供簡單的導航轉換。導航轉換 - windows手機工具包
我在Nuget上找到了Windows Phone Toolkit。不幸的是,轉換服務的導航轉換不起作用。我究竟做錯了什麼? (我使用微卡利作爲MVVM框架)
Bootstrapper.cs
public sealed class Bootstrapper : PhoneBootstrapperBase
{
public PhoneContainer Container { get; set; }
public Bootstrapper()
{
StartRuntime();
}
protected override void Configure()
{
Container = new PhoneContainer();
Container.RegisterPhoneServices(RootFrame);
Container.Singleton<MainViewModel>()
AddCustomConventions();
}
static void AddCustomConventions()
{
//ellided
}
protected override object GetInstance(Type service, string key)
{
return Container.GetInstance(service, key);
}
protected override IEnumerable<object> GetAllInstances(Type service)
{
return Container.GetAllInstances(service);
}
protected override void BuildUp(object instance)
{
Container.BuildUp(instance);
}
protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
{
return new TransitionFrame();
}
}
MainView.xaml
...
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
...
<Grid x:Name="LayoutRoot">
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
...
</Grid>
App.xaml.cs
public sealed partial class App : Application
{
public static PhoneApplicationFrame RootFrame { get; private set; }
public App()
{
InitializeComponent();
if (!Debugger.IsAttached) return;
Application.Current.Host.Settings.EnableFrameRateCounter = false;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}
}
或者,在windows phone SL 8.1應用程序中提供導航轉換的另一種方法是什麼?
謝謝,這真的很有幫助。是否有機會將導航轉換添加到頁面上的內容。我試過Transitions.UseSlideTransition(this.Content)和foreach(MainGrid.Children中的var項目)Transitions.UseSlideTransition(item)但他們不工作。 – damian131 2014-09-30 07:29:44
不知道。我使用自定義的故事板 - 這給了動畫上的大量自由(加上它們很有趣,可以使用!)雖然在可點擊元素上使用了傾斜效果。假設你有一個網格用戶可以點擊/點擊 - 添加這個作爲屬性:toolkit:TiltEffect.IsTiltEnabled =「True」 – James 2014-09-30 08:16:27
只需將'RootFrame'替換爲'TransitionFrame'解決了我沒有顯示轉換的問題。謝謝! – patrickjason91 2015-04-16 07:34:40