在WPF中将光标更改为图像。

时间:2014-08-19 08:50:32

标签: wpf image canvas cursor wpf-controls

我正在尝试实施“加盖”功能。我从列表中选择一个图像,然后用它来标记我画布上的点击位置。

我已经阅读了几个关于如何更改光标的解决方案,但它们只涉及改变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 个答案:

答案 0 :(得分:1)

您有两个主要选项...您可以在TechPro上遵循相当复杂的教程,例如WPF Tutorial - How To Use Custom Cursors,这可以让您从几乎任何WPF {{1}创建Cursor或者,您可以通过设置UIElement隐藏Cursor并将其替换为您自己的Cursor = Cursors.None ...当然,使用此方法,您也可以负责在鼠标光标移动的任何地方移动Image