我正在尝试实现“冲压”功能 . 我从列表中选择一个图像,然后用它来标记我画布上的点击位置 .
我已经阅读了几个关于如何更改光标的解决方案,但它们只涉及改变ico纹理 .
我希望能够实时预览我将要加盖的内容 . 因此,如果我更改标记的旋转,则光标需要适当旋转,如果我缩放标记,则需要缩放光标,如果我切换标记,则光标需要切换 .
我尝试将图像添加到observablecollection,并将其绑定到画布 . 然后我尝试更新画布的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;
}
}
1 回答
你有两个主要的选择...你可以在TechPro上遵循一个相当复杂的教程,如WPF Tutorial - How To Use Custom Cursors,它可以让你从几乎任何WPF
UIElement
创建一个Cursor
,或者你可以通过设置Cursor = Cursors.None
然后替换它来隐藏Cursor
使用您自己的Image
...当然,使用此方法,您还需要负责在鼠标光标移动的任何位置移动Image
.