}         // proc OnMouseMove

        /// <summary>Panning emulation for mouse.</summary>
        /// <param name="e"></param>
        protected override void OnMouseUp(MouseButtonEventArgs e)
        {
            if (Mouse.Captured == this)
            {
                mouseTransformInfo = null;
                Mouse.Capture(null);
                Mouse.OverrideCursor = null;
                e.Handled            = true;
            }

            base.OnMouseUp(e);
        }         // proc OnMouseUp
        }         // proc OnMouseWheel

        /// <summary>Panning emulation for mouse.</summary>
        /// <param name="e"></param>
        protected override void OnMouseDown(MouseButtonEventArgs e)
        {
            if (Keyboard.Modifiers == ModifierKeys.None && IsPanningAllowed)
            {
                if (Mouse.Capture(this, CaptureMode.Element))
                {
                    mouseTransformInfo   = new MouseTransformInfo(e.GetPosition(this), BeginContentTransform());
                    Mouse.OverrideCursor = Cursors.Hand;
                    e.Handled            = true;
                }
            }
            base.OnMouseDown(e);
        }         // proc OnMouseDown