WPF 在ScrollViewer控件内部的Slider控件无法触摸滑动

发布时间 2023-07-27 16:10:24作者: log9527

WPF中在ScrollViewer控件内部的Slider控件无法触摸滑动,是由于ScrollViewer控件默认设置了IsManipulationEnabled为True。

        <ScrollViewer x:Name="ScrollViewer1">
            <Slider></Slider>
        </ScrollViewer>

WPF ScrollViewer的IsManipulationEnabled属性是用来控制触摸手势操作的开关。当这个属性设置为true时,用户可以使用触摸手势(如滑动、缩放)来操作控件,而当设置为false时,控件将不会响应这些手势操作。

在使用触摸屏幕的设备上,IsManipulationEnabled属性可以让用户更方便地使用ScrollViewer控件,这可以提高用户体验。默认情况下,这个属性的值是true。

所以在Slider控件,或者Slider的父控件将ScrollViewer控件IsManipulationEnabled设为False即可。

        <ScrollViewer x:Name="ScrollViewer1">
            <Slider MouseEnter="SelectedCanvas_OnMouseEnter" MouseLeave="SelectedCanvas_OnMouseLeave"></Slider>
        </ScrollViewer>
        private void SelectedCanvas_OnMouseEnter(object sender, MouseEventArgs e)
        {
            ScrollViewer1.IsManipulationEnabled = false;
        }

        private void SelectedCanvas_OnMouseLeave(object sender, MouseEventArgs e)
        {
            ScrollViewer1.IsManipulationEnabled = true;
        }