我想在枢轴滑动动画结束后显示一个弹出窗口。
现在,首先显示弹出警报,然后显示滑动动画。
到目前为止,这是我的代码:
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;
}
}
我该如何做到这一点?
答案 0 :(得分:1)
在WP8.1 RunTime下你可以这样做:
创建 Pivot 控件的扩展名,以便公开其 ScrollViewer :
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();
}
答案 1 :(得分: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;
}
}