コード例 #1
0
        async void Interactive(string input)
        {
            try
            {
                await ReadBotMessagesAsync(input);

                foreach (var msg in messagesFromBot)
                {
                    if (msg != null)
                    {
                        AddTextToGrid(msg, 1, "ms-appx:///Assets/6422482.png", 0);
                    }
                }
                await Task.Delay(100);

                double off = ScrollRow.ActualHeight;
                await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    var Succes = Scroller.ChangeView(null, off, null);
                });
            }
            catch (Exception err)
            {
            }
        }
コード例 #2
0
ファイル: CommandPanelView.xaml.cs プロジェクト: R-EM/BleLab
        public void AddParagraph(Paragraph paragraph)
        {
            Viewer.Blocks.Add(paragraph);

            Scroller.UpdateLayout();
            Scroller.ChangeView(0.0f, double.MaxValue, 1.0f);
        }
コード例 #3
0
 void ControlSyslog_SizeChanged(object sender, SizeChangedEventArgs e)
 {
     if (AutoScroll)
     {
         Scroller.ChangeView(0.0f, double.MaxValue, 1.0f);
     }
 }
コード例 #4
0
        private async void SubmitString(object sender, RoutedEventArgs e)
        {
            try
            {
                if (StrainChosen != null)
                { // Choose strain
                    progressRing.IsActive  = true;
                    StrainList.IsEnabled   = false;
                    SubmitButton.IsEnabled = false;

                    await SubmitStringTask();

                    StrainProperties.Text = UsageContext.ChosenStrain?.GetPropertiesString();
                    Title.Opacity         = 1;
                    Scroller.ChangeView(null, 0, null); //scroll to top
                    Scroller.Visibility         = Visibility.Visible;
                    StrainProperties.Visibility = Visibility.Visible;
                }
            }
            catch (Exception ex)
            {
                AppDebug.Exception(ex, "SubmitString");
            }
            StrainList.IsEnabled   = true;
            SubmitButton.IsEnabled = true;
            progressRing.IsActive  = false;
        }
コード例 #5
0
 private void Button_GotFocus(object sender, RoutedEventArgs e)
 {
     if (App.IsXbox())
     {
         Scroller.ChangeView(0, 0, 1, false);
     }
 }
コード例 #6
0
    // BringIntoView functionality is ported from WinUI ScrollPresenter
    // https://github.com/microsoft/microsoft-ui-xaml/blob/main/dev/ScrollPresenter/ScrollPresenter.cpp
    // with partial modifications to match the ScrollViewer control behavior.

    protected override void OnBringIntoViewRequested(BringIntoViewRequestedEventArgs args)
    {
        base.OnBringIntoViewRequested(args);

        UIElement content = RealContent as UIElement;

        if (args.Handled ||
            args.TargetElement == this ||
            (args.TargetElement == content && content?.Visibility == Visibility.Collapsed) ||
            !SharedHelpers.IsAncestor(args.TargetElement, this, true /*checkVisibility*/))
        {
            // Ignore the request when:
            // - It was handled already.
            // - The target element is this ScrollPresenter itself. A parent scrollPresenter may fulfill the request instead then.
            // - The target element is effectively collapsed within the ScrollPresenter.
            return;
        }

        Rect   targetRect = new Rect();
        double targetZoomedHorizontalOffset = 0.0;
        double targetZoomedVerticalOffset   = 0.0;
        double appliedOffsetX = 0.0;
        double appliedOffsetY = 0.0;
        var    viewportWidth  = ViewportWidth;
        var    viewportHeight = ViewportHeight;
        var    zoomFactor     = Scroller.ZoomFactor;

        // Compute the target offsets based on the provided BringIntoViewRequestedEventArgs.
        ComputeBringIntoViewTargetOffsets(
            content,
            args,
            out targetZoomedHorizontalOffset,
            out targetZoomedVerticalOffset,
            out appliedOffsetX,
            out appliedOffsetY,
            out targetRect);

        // Do not include the applied offsets so that potential parent bring-into-view contributors ignore that shift.
        Rect nextTargetRect = new Rect(
            targetRect.X * zoomFactor - targetZoomedHorizontalOffset - appliedOffsetX,
            targetRect.Y * zoomFactor - targetZoomedVerticalOffset - appliedOffsetY,
            Math.Min(targetRect.Width * zoomFactor, viewportWidth),
            Math.Min(targetRect.Height * zoomFactor, viewportHeight));

        Rect viewportRect = new Rect(
            0.0f,
            0.0f,
            (float)viewportWidth,
            (float)viewportHeight);

        var verticalOffset         = Scroller.VerticalOffset;
        var horizontalOffset       = Scroller.HorizontalOffset;
        var zoomedVerticalOffset   = verticalOffset;
        var zoomedHorizontalOffset = horizontalOffset;

        if (targetZoomedHorizontalOffset != zoomedHorizontalOffset ||
            targetZoomedVerticalOffset != zoomedVerticalOffset)
        {
            Scroller.ChangeView(targetZoomedHorizontalOffset, targetZoomedVerticalOffset, zoomFactor, !args.AnimationDesired);
        }
        else
        {
            // No offset change was triggered because the target offsets are the same as the current ones. Mark the operation as completed immediately.
            //RaiseViewChangeCompleted(true /*isForScroll*/, ScrollPresenterViewChangeResult::Completed, offsetsChangeCorrelationId);
        }

        if (SharedHelpers.DoRectsIntersect(nextTargetRect, viewportRect))
        {
            // Next bring a portion of this ScrollPresenter into view.
            args.TargetRect       = nextTargetRect;
            args.TargetElement    = Scroller;
            args.HorizontalOffset = args.HorizontalOffset - appliedOffsetX;
            args.VerticalOffset   = args.VerticalOffset - appliedOffsetY;
        }
        else
        {
            // This ScrollPresenter did not even partially bring the TargetRect into its viewport.
            // Mark the operation as handled since no portion of this ScrollPresenter needs to be brought into view.
            args.Handled = true;
        }
    }
コード例 #7
0
ファイル: PArticle.xaml.cs プロジェクト: hamerstandr/myFeed
 private void HeadingCapsBlock_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
 {
     Scroller.ChangeView(null, 0, null);
 }