c# – 仅限WPF Slider Draggable

c# – 仅限WPF Slider Draggable,第1张

概述我有一个奇怪的要求,只能让 WPF应用程序中的滑块可拖动,这意味着单击滑块轨道不应移动滑块,它只应在用户单击并拖动滑块时移动.有没有办法在WPF中实现这一目标?我看到一篇帖子暗示你从Slider派生出一个自定义控件,但是只有4个虚拟方法,而且似乎没有帮助. 这是我现在的滑块定义. <Slider Name="radialSlider" Width="150" 我有一个奇怪的要求,只能让 WPF应用程序中的滑块可拖动,这意味着单击滑块轨道不应移动滑块,它只应在用户单击并拖动滑块时移动.有没有办法在WPF中实现这一目标?我看到一篇帖子暗示你从SlIDer派生出一个自定义控件,但是只有4个虚拟方法,而且似乎没有帮助.

这是我现在的滑块定义.

<SlIDer name="radialSlIDer"         WIDth="150"          VerticalAlignment="Center"         TickFrequency=".005"         Minimum="-.25"         Maximum=".25"         IsSnapToTickEnabled="True"         ValueChanged="radialSlIDer_ValueChanged"         Thumb.DragCompleted="radialSlIDer_DragCompleted"          GrID.Column="1"></SlIDer>
解决方法 通过拦截径向滑块上的鼠标按下事件并检查鼠标是否在拇指滑块上,我能够得到我认为的预期行为.你忘了提到你正在使用 the Mahapps UI library.我使用了一个名为 Snoop的程序来检查页面中的可视元素,以找到MetroThumb控件的名称.只有在加载了radialSlIDer之后才能找到MetroThumb元素,因此需要在radialSlIDer的Loaded事件触发后调用搜索方法.

MetroThumb mt;loadPage(){    radialSlIDer.Loaded += (s,e) => {        mt = radialSlIDer.FindChild<MetroThumb>("HorizontalThumb");    };    radialSlIDer.PrevIEwMouseDown += md;}private voID md(object sender,RoutedEventArgs e) {    if (!mt.IsMouSEOver) {        e.Handled = true;    }}
总结

以上是内存溢出为你收集整理的c# – 仅限WPF Slider Draggable全部内容,希望文章能够帮你解决c# – 仅限WPF Slider Draggable所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1226848.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存