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

问题描述 投票:0回答:1

我正在尝试实现“标记”功能。我正在从列表中选择一个图像,并用它在画布上单击的位置标记。

我已经阅读了有关如何更改光标的几种解决方案,但它们仅涉及更改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;
            }
        }
wpf image canvas cursor wpf-controls
1个回答
1
投票

[您有两个主要选择...您可以按照相当复杂的教程,例如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?

© www.soinside.com 2019 - 2024. All rights reserved.