【问题标题】:C# - Hiding mouse cursor in programC# - 在程序中隐藏鼠标光标
【发布时间】:2018-06-04 20:54:28
【问题描述】:

我一直在寻找这个问题的资源,但找不到我想要的。我在 WPF 中有一个 C# 应用程序,它使用带有鼠标光标的触摸屏供用户使用。问题是我想隐藏这个鼠标光标,但是当我在后端运行程序时,应用程序应该显示鼠标光标。

有人对从哪里开始有什么好的建议吗?

【问题讨论】:

  • 您使用的是 Windows 窗体、WPF 还是其他一些屏幕框架?
  • WPF 应用程序

标签: c# wpf visual-studio mouse-cursor


【解决方案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

鼠标光标将被隐藏。

【讨论】:

  • 感谢您的建议,但该应用程序实际上是在触摸屏机器上运行的。
【解决方案2】:

很简单:

if(runningAsClient)
    Cursor.Hide();

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

#if CLIENT
    Cursor.Hide();

如果您使用 WPF,则必须将窗口的 Cursor 属性设置为

Cursor = Cursors.None;

【讨论】:

  • 我的意思是如果系统在线供真实用户使用,光标应该隐藏。如果我们运行程序离线,例如增强程序或修复错误,则不应隐藏它
  • 然后只在适当的项目配置中设置BACKEND(例如Release Backend)而不是在Debug中。这就是配置存在的原因。
  • 应该基本上把光标隐藏在BackEND中就可以了吗?
  • 对不起,我理解错了,当然光标应该隐藏在客户端而不是后端,但过程相同,只需将指令改为CLIENT即可。
  • 还有其他方法吗?假设我在 app.config 文件而不是主应用程序文件中禁用它。
猜你喜欢
  • 2017-04-05
  • 2013-09-16
  • 1970-01-01
  • 2015-05-27
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2022-12-31
  • 2017-06-07
相关资源
最近更新 更多