С# - Скрытие курсора мыши в программе

Я искал ресурс для этой проблемы, но не мог найти то, что я хочу. У меня есть приложение С# в WPF, которое использует сенсорный экран с курсором мыши, присутствующим на экране для пользователей. Проблема в том, что я хочу скрыть этот курсор мыши, но когда я запускаю программу в бэкэнде, в приложении должен отображаться курсор мыши.

Есть ли у кого-нибудь хорошее предложение о том, с чего начать?


person Cookie Monster    schedule 22.12.2017    source источник
comment
Используете ли вы Windows Forms, WPF или какую-либо другую инфраструктуру экрана?   -  person Filnor    schedule 22.12.2017
comment
WPF-приложение   -  person Cookie Monster    schedule 22.12.2017


Ответы (2)


Это очень просто:

if(runningAsClient)
    Cursor.Hide();

Конечно, вам нужна техника для определения системы, на которой вы работаете, например, директива препроцессора. Вы можете поместить это в свой основной метод и установить директиву в конфигурации клиентского проекта.

#if CLIENT
    Cursor.Hide();

Если вы используете WPF, вы должны установить для свойства Cursor вашего окна значение

Cursor = Cursors.None;
person lorisleitner    schedule 22.12.2017
comment
Я имею в виду, что если система ОНЛАЙН для использования реальными пользователями, курсор должен быть скрыт. Если нам нужно запустить программу в автономном режиме, например, для улучшения программы или исправления ошибок, это не должно быть скрыто. - person Cookie Monster; 22.12.2017
comment
Затем установите только BACKEND в соответствующей конфигурации проекта (например, Release Backend), а не в Debug. Вот почему существуют конфигурации. - person lorisleitner; 22.12.2017
comment
Должен ли в основном скрывать курсор в BackEND и все? - person Cookie Monster; 22.12.2017
comment
Извините, я не так понял, конечно, курсор должен быть скрыт в клиенте, а не в бэкэнде, но это та же процедура, просто измените директиву на CLIENT. - person lorisleitner; 22.12.2017
comment
Есть ли другой подход? Допустим, я отключил его в файле app.config, а не в основном файле приложения. - person Cookie Monster; 22.12.2017
comment
Да, вы также можете использовать файл app.config, просто добавьте <addkey="displayCursor" value="True"/> в свой app.config и сможете прочитать его с помощью bool.Parse(ConfigurationManager.AppSettings["displayCursor"]);. - person lorisleitner; 22.12.2017
comment
Давайте продолжим обсуждение в чате. - person Cookie Monster; 22.12.2017
comment
где мне разместить bool.parse? - person Cookie Monster; 22.12.2017

Я предлагаю вам использовать аргументы командной строки для достижения этой цели:

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

и курсор мыши будет скрыт.

person Tommaso Belluzzo    schedule 22.12.2017
comment
Я ценю ваше предложение, но приложение на самом деле запускается на машине с сенсорным экраном. - person Cookie Monster; 22.12.2017