WPF 关于日历控件左右点不动的解决方案

工作笔记

private static ChildItem FindVisualChildItem<ChildItem>(DependencyObject obj, string name) where ChildItem : FrameworkElement
        {
            if (null != obj)
            {
                for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                    if (child != null && child is ChildItem && (child as ChildItem).Name.Equals(name))
                    {
                        return (ChildItem)child;
                    }
                    else
                    {
                        ChildItem childOfChild = FindVisualChildItem<ChildItem>(child, name);
                        if (childOfChild != null && (childOfChild as ChildItem).Name.Equals(name))
                        {
                            return childOfChild;
                        }
                    }
                }
            }
            return null;
        }



        void calendar_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine("calendar MouseLeftButtonDown");

            e.Handled = true;
        }

   
            // Find the Popup in template
            Popup popup = FindVisualChildItem<Popup>(sender as DatePicker, "PART_Popup");
            var  calendar = (Calendar)popup.Child;

            calendar.MouseLeftButtonDown += new MouseButtonEventHandler(calendar_MouseLeftButtonDown);

            //Get previouts button
            string previousBtnName = "PART_PreviousButton";
            var previousBtn = FindVisualChildItem<Button>(calendar, previousBtnName);
            if (previousBtn != null)
            {
                previousBtn.PreviewMouseLeftButtonDown -= new MouseButtonEventHandler(previousBtn_PreviewMouseLeftButtonDown);
                previousBtn.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(previousBtn_PreviewMouseLeftButtonDown);
            }
发布了69 篇原创文章 · 获赞 0 · 访问量 1021

猜你喜欢

转载自blog.csdn.net/qq_21209307/article/details/104825333