我正在尝试实现“标记”功能。我正在从列表中选择一个图像,并用它在画布上单击的位置标记。
我已经阅读了有关如何更改光标的几种解决方案,但它们仅涉及更改ico纹理。
我希望能够实时预览我将要标记的内容。因此,如果更改印章的旋转,则光标需要适当旋转,如果缩放印章,则需要缩放光标,如果切换印章,则需要切换光标。
我尝试将图像添加到可观察的集合,并将其绑定到画布。然后,我尝试更新画布的MouseMove事件中的位置,图像,缩放比例,但是它不起作用。
这里是MouseMove函数:
private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
if (currentTool == "staticBrush" && lvDataBinding.SelectedIndex != -1)
{
canvasImages[0].Name = srcImages[lvDataBinding.SelectedIndex].Name;
canvasImages[0].BmpImage = new BitmapImage(new Uri(canvasImages[0].Name, UriKind.Relative));
scale(canvasImages[0]);
canvasImages[0].OffsetX = e.GetPosition(canvasDataBinding).X;
canvasImages[0].OffsetY = e.GetPosition(canvasDataBinding).Y;
}
}
[您有两个主要选择...您可以按照相当复杂的教程,例如TechPro上的WPF Tutorial - How To Use Custom Cursors,它应该使您能够从几乎所有WPF Cursor
中创建一个UIElement
,或者您可以隐藏通过设置Cursor
并用您自己的Cursor = Cursors.None
替换Image
...当然,通过这种方法,您还负责将Image
移到鼠标光标移动的任何位置。
可以在此处找到“从视觉创建自定义光标”的另一种形式:Setting the Cursor to Render Some Text While Dragging
[其他“拖放”场景可以替代自定义光标(例如,如“将Image
移动到鼠标光标移动的任何地方”):Getting fancy and using the Visual we are dragging for feedback [instead of a cursor]How can I drag and drop items between data bound ItemsControls?