C# - 在程序中隐藏鼠标光标

3
我一直在寻找与此问题相关的资源,但没有找到我想要的。我有一个使用触摸屏幕的WPF C#应用程序,屏幕上有鼠标光标供用户使用。问题是,我想隐藏这个鼠标光标,但当我在后台运行程序时,应用程序应该显示鼠标光标。
有人有任何好的建议从哪里开始?

你使用Windows Forms、WPF还是其他屏幕框架? - Filnor
WPF 应用程序 - Cookie Monster
2个回答

7
非常简单:
if(runningAsClient)
    Cursor.Hide();

当然,你需要一种技术来确定你正在运行的系统,比如预处理指令。你可以将其放在主方法中,并在客户端项目配置中设置该指令。

#if CLIENT
    Cursor.Hide();

如果你使用 WPF,你需要将窗口的 Cursor 属性设置为:

Cursor = Cursors.None;

我的意思是,如果系统正在为真实用户在线使用,光标应该被隐藏。如果它是离线的,供我们运行程序,例如增强程序或修复错误,那么它不应该被隐藏。 - Cookie Monster
然后只需在适当的项目配置中设置BACKEND(例如发布后端),而不是在调试中设置。这就是为什么存在配置的原因。 - lorisleitner
基本上应该在后端隐藏光标,就这样? - Cookie Monster
抱歉,我误解了,当然应该在客户端隐藏光标而不是后端,但是操作步骤相同,只需将指令更改为“CLIENT”。 - lorisleitner
是的,您也可以使用 app.config 文件,只需在 app.config 中添加 <addkey="displayCursor" value="True"/>,然后可以通过 bool.Parse(ConfigurationManager.AppSettings["displayCursor"]); 读取它。 - lorisleitner
显示剩余3条评论

1
我建议您使用命令行参数来实现这个目标:
public static class Program
{
    public static void Main(String[] args)
    {
        Boolean backend = args.Contains("-b");

        // ...

        MyApp app = new MyApp(backend);
        app.Run();
    }
}

public partial class MyApp : Application
{
    public MyApp(Boolean backend)
    {
        InitializeComponent();

        if (backend)
            Cursor = Cursors.None;
    }
}

要将您的应用程序启动为“后端”,只需使用以下命令:

MyProgram.exe -b

并且鼠标光标将被隐藏。


我很感谢您的建议,但实际上该应用程序是在触摸屏机器上运行的。 - Cookie Monster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接