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;
                });
            });
        }
Exemple #2
0
        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();
        }