public ReplyDialogPresenter(object o, Popup popup) { this.InitializeComponent(); Tools.ShowProgressBar(); Height = Window.Current.Bounds.Height; Width = Window.Current.Bounds.Width; HorizontalAlignment = HorizontalAlignment.Center; Window.Current.SizeChanged += WindowSizeChanged; TitleBar.BackButtonClick += (s, e) => popup.Hide(); popup.Closed += (s, e) => Window.Current.SizeChanged -= WindowSizeChanged; FeedReplyViewModel reply = o as FeedReplyViewModel; TitleBar.Title = $"回复({reply.replynum})"; TitleBar.RefreshEvent += (s, e) => GetReplys(true); id = reply.id; FeedReplyList.ItemsSource = replys; reply.showreplyRows = false; replys.Add(reply); GetReplys(false); Tools.HideProgressBar(); Task.Run(async() => { await Task.Delay(200); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { VScrollViewer = VisualTree.FindDescendantByName(FeedReplyList, "ScrollViewer") as ScrollViewer; VScrollViewer.ViewChanged += VScrollViewer_ViewChanged; }); }); }
private void Flyout_Opened(object sender, object e) { Tools.rootPage.ShowProgressBar(); Flyout flyout = sender as Flyout; Grid mainGrid = (flyout.Content as Grid); FeedReplyViewModel feedReplyViewModel = (mainGrid.Tag as FeedReplyViewModel); if (feedReplyViewModel != null) { TitleBar titleBar = mainGrid.FindName("TitleBar") as TitleBar; FlyoutData data = new FlyoutData { id = feedReplyViewModel.id }; titleBar.TitleHeight = 48; titleBar.BackButtonClick += (s, ee) => flyout.Hide(); titleBar.Title = $"回复({feedReplyViewModel.replyTotal})"; titleBar.RefreshButtonClick += (s, ee) => GetReplys((s as FrameworkElement).Tag as FlyoutData, true); titleBar.RefreshButtonTag = data; ScrollViewer scrollViewer = (mainGrid.FindName("ScrollViewer") as ScrollViewer); scrollViewer.Tag = data; scrollViewer.ViewChanged += (s, ee) => { ScrollViewer VScrollViewer = s as ScrollViewer; if (VScrollViewer.VerticalOffset == 0) { GetReplys(VScrollViewer.Tag as FlyoutData, true); } else if (VScrollViewer.VerticalOffset == VScrollViewer.ScrollableHeight) { GetReplys(VScrollViewer.Tag as FlyoutData, false); } }; data.VScrollViewer = scrollViewer; ListView listView = scrollViewer.FindName("FeedReplyList") as ListView; listView.ItemsSource = data.replys; feedReplyViewModel.showreplyRows = false; data.replys.Add(feedReplyViewModel); mainGrid.Tag = data; } if (mainGrid.Tag is FlyoutData d && d.page == 0) { GetReplys(d, false); } Tools.rootPage.HideProgressBar(); }