使用场景
我们需要将控件随着鼠标拖拽,位置实时随着鼠标偏移。
在对控件进行拖拽时,使用的是TranslateTransform对Image控件进行的平移操作。
public MainWindow()
{
InitializeComponent();
fieldsImage.RenderTransform = translateT;
}
TranslateTransform translateT = new TranslateTransform();
为了让控件随鼠标拖拽而移动,我们在MouseDown事件中记录下当前鼠标的 位置,并在拖拽时计算偏移量。
<Image Margin="0" Source="{Binding ImageSource}" RenderTransform="{Binding TransGroup}"
Name="fieldsImage" MouseDown="ContentControl_MouseDown"
MouseMove="ContentControl_MouseMove" MouseWheel="ContentControl_MouseWheel" />
private void ContentControl_MouseDown(object sender, MouseButtonEventArgs e)
{
Image ctl = e.Source as Image;
mousePosition = e.GetPosition(ctl);
WPF拖拽抖动问题及解决方法

本文探讨了在WPF中使用TranslateTransform进行拖拽操作时出现的控件抖动问题,详细分析了原因并提供了两种解决方案:一是将源对象转换为Control控件以避免鼠标事件引起的抖动;二是针对触控事件,通过设置触控容器为父级控件来解决抖动现象。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



