2014-06-28 60 views
0

我想在樞軸滑動動畫完成後顯示彈出。樞軸滑動動畫後顯示彈出

現在,彈出警報首先顯示在滑動動畫的後面。

這裏是我到目前爲止的代碼:

private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    switch (MainPivot.SelectedIndex) 
    { 
     case 0: 
      SelectHome(); 
      break; 
     case 1: 
      SelectTest(); 
      break; 
     case 2: 
      SelectStatus(); 
      Alert alert = new Alert(); 
      alert.Show(); 
      break; 
     case 3: 
      SelectAbout(); 
      break; 
     default: 
      break; 
    } 
} 

我怎樣才能做到這一點?

創建樞軸控制的擴展,它會暴露其的ScrollViewer

+1

這是WP8還是WP8.1? Silverlight或WinRT? –

+0

WP8,WinRT ..... – Sumia

+1

這幾乎都是WP8和WinRT。 –

回答

1

在WP8.1運行系統中,例如可以這樣做

namespace YourNamespace 
{ 
    public class PivotEx : Pivot 
    { 
    public ScrollViewer exposedSV = null; 

    protected override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 
     exposedSV = this.GetTemplateChild("ScrollViewer") as ScrollViewer; 
    } 
    } 

一旦你擁有了它,在XAML中定義您的樞軸:

<local:PivotEx x:Name="myPivot" xmlns:local="using:YOurNamespace"> 
// rest of code 

然後就可以訪問的ScrollViewer並訂閱其ViewChanged事件:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     this.Loaded += (sender, e) => myPivot.exposedSV.ViewChanged += pivotsScroll_ViewChanged; 
    } 

    private async void pivotsScroll_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) 
    { 
     if (!e.IsIntermediate) await new MessageDialog("After scroll changed!").ShowAsync(); 
    } 
+0

thnaks我會試試看......我用了一個計時器來啓動彈出窗口。 – Sumia

0

我不知道它是否是做到這一點的有效途徑,但我使用的計時器支點的滾動動畫之後開始彈出。

async Task showAlertWithDelay() 
{ 
    await Task.Delay(1000); 
    AlertMessage alert = new AlertMessage(); 
    alert.show(); 
} 

private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    switch (MainPivot.SelectedIndex) 
    { 
     case 0: 
      SelectHome(); 
      break; 
     case 1: 
      SelectTest(); 
      break; 
     case 2: 
      SelectStatus(); 
      showAlertWithDelay(); 
      break; 
     case 3: 
      SelectAbout(); 
      break; 
     default: 
      break; 
    } 
}