コード例 #1
0
ファイル: DataGridScrollViewer.cs プロジェクト: Drift2020/WPF
 public static void SetSynchronizedScrollViewerPosition(DependencyObject obj, SynchronizedScrollViewerPosition value)
 {
     obj.SetValue(TableViewScrollViewer.SynchronizedScrollViewerPositionProperty, value);
 }
コード例 #2
0
 public static void SetSynchronizedScrollViewerPosition( DependencyObject obj, SynchronizedScrollViewerPosition value )
 {
   obj.SetValue( TableViewScrollViewer.SynchronizedScrollViewerPositionProperty, value );
 }
コード例 #3
0
ファイル: DataGridScrollViewer.cs プロジェクト: Drift2020/WPF
        private void UpdateChildScrollViewers()
        {
            bool isAtTop    = (this.VerticalOffset == 0);
            bool isAtLeft   = (this.HorizontalOffset == 0);
            bool isAtBottom = ((this.VerticalOffset + this.ViewportHeight) == this.ExtentHeight);
            bool isAtRight  = ((this.HorizontalOffset + this.ViewportWidth) == this.ExtentWidth);

            foreach (SynchronizedScrollViewer scrollViewer in m_childScrollViewers)
            {
                SynchronizedScrollViewerPosition position = TableViewScrollViewer.GetSynchronizedScrollViewerPosition(scrollViewer);

                bool handled = false;

                switch (position)
                {
                case SynchronizedScrollViewerPosition.Top:
                    if (isAtTop == true)
                    {
                        KeyboardNavigation.SetDirectionalNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        KeyboardNavigation.SetTabNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        handled = true;
                    }
                    break;

                case SynchronizedScrollViewerPosition.Bottom:
                    if (isAtBottom == true)
                    {
                        KeyboardNavigation.SetDirectionalNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        KeyboardNavigation.SetTabNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        handled = true;
                    }
                    break;

                case SynchronizedScrollViewerPosition.Left:
                    if (isAtLeft == true)
                    {
                        KeyboardNavigation.SetDirectionalNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        KeyboardNavigation.SetTabNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        handled = true;
                    }
                    break;

                case SynchronizedScrollViewerPosition.Right:
                    if (isAtRight == true)
                    {
                        KeyboardNavigation.SetDirectionalNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        KeyboardNavigation.SetTabNavigation(scrollViewer, KeyboardNavigationMode.Continue);
                        handled = true;
                    }
                    break;

                case SynchronizedScrollViewerPosition.None:
                default:
                    break;
                }

                if (handled == false)
                {
                    KeyboardNavigation.SetDirectionalNavigation(scrollViewer, KeyboardNavigationMode.None);
                    KeyboardNavigation.SetTabNavigation(scrollViewer, KeyboardNavigationMode.None);
                }
            }
        }