【发布时间】:2011-11-11 12:54:08
【问题描述】:
如何在c#中单击图像时将鼠标指针更改为图像?
【问题讨论】:
-
WinForms、WPF、ASP.NET(这有点不可能)什么?这个问题很模糊。
标签: c# .net image graphics drawing
如何在c#中单击图像时将鼠标指针更改为图像?
【问题讨论】:
标签: c# .net image graphics drawing
MSDN article 解释了如何使用 WPF 进行操作。只需将他们的下拉菜单更改为您感兴趣的图像的 OnClick。
您也可能会挂接到 WinForms 中的 OnClick 事件,但我没有现成的示例。如果您使用的是 WinForms 而不是 WPF,请编辑您的问题以指定!
您可以使用以下方法创建自己的自定义光标:
yourCursor = new Cursor(someImageStream);
这是我验证加载自定义光标的一种方式。这当然有效,并且结合了您自己的评论以及我在下面链接的博客文章中的一些信息。
var image = (Bitmap)Bitmap.FromFile(@"c:\cursorImage.bmp");
IntPtr ptr = image.GetHicon();
var handle = new SafeFileHandle(ptr, true);
var yourCursor = System.Windows.Interop.CursorInteropHelper.Create(handle);
Cursor = yourCursor;
this blog article 提供了有关加载图像以在自定义光标中使用的更详细说明,这可能更可靠,但考虑到上述内容,看起来比您需要的更多。
【讨论】:
Cursor c = new Cursor(ptr);,然后通过传递c.Handle 和false 来创建SafeFileHandle,而不是ptr 和true ,作者承认说文档说要使用true,但无法让它工作。也许是因为使用了新的Cursor 而没有直接发送ptr。但是我能够让该链接的代码工作,以防有人尝试上面的代码并且不能。但它们基本上是一样的。
问题含糊/不清楚,但也许您想更改系统光标(不仅仅是您的应用程序)?这是SetSystemCursor 的 pinvoke 信息的链接。请注意,这被认为是错误的形式。
【讨论】:
this.Cursor = Cursors.WaitCursor;
处理显示图像的控件的单击事件。在此事件处理程序中,将控件的光标属性更改为所需的 - 您当然可以构建自己的光标对象,请参阅Cursor。
【讨论】: