コード例 #1
0
ファイル: KineticBehaviour.cs プロジェクト: yurseli/sambapos
        static void VisualLoaded(object sender, RoutedEventArgs e)
        {
            var fe = sender as FrameworkElement;

            if (fe != null)
            {
                var v = ExtensionServices.GetVisualChild <ScrollViewer>(fe);
                if (v != null)
                {
                    AttachScrollViewer(v, true);
                    fe.Loaded -= VisualLoaded;
                }
            }
        }
コード例 #2
0
ファイル: KineticBehaviour.cs プロジェクト: yurseli/sambapos
        private static void AttachScrollViewer(DependencyObject d, bool newValue)
        {
            var scoller = d as ScrollViewer;

            if (scoller != null)
            {
                if (newValue)
                {
                    scoller.PreviewMouseLeftButtonDown += ScollerPreviewMouseLeftButtonDown;
                    scoller.PreviewMouseLeftButtonUp   += ScollerPreviewMouseLeftButtonUp;
                    scoller.PreviewMouseMove           += ScollerPreviewMouseMove;
                    SetInertiaProcessor(scoller, new InertiaHandler(scoller));
                }
                else
                {
                    scoller.PreviewMouseLeftButtonDown -= ScollerPreviewMouseLeftButtonDown;
                    scoller.PreviewMouseLeftButtonUp   -= ScollerPreviewMouseLeftButtonUp;
                    scoller.PreviewMouseMove           -= ScollerPreviewMouseMove;
                    var inertia = GetInertiaProcessor(scoller);
                    if (inertia != null)
                    {
                        inertia.Dispose();
                    }
                }
            }
            else
            {
                var sbar = ExtensionServices.GetVisualChild <ScrollViewer>(d);
                if (sbar != null)
                {
                    AttachScrollViewer(sbar, newValue);
                }
                else
                {
                    var visual = d as FrameworkElement;
                    if (visual != null)
                    {
                        visual.Loaded += VisualLoaded;
                    }
                }
            }
        }