Ваяю C#,WPF приложение, которое будет использоваться в том числе и на мониторах с тачскрином. В этом случае курсор мыши только мешает. Как его сделать полностью невидимым? Эксперементы с this.Cursor = Cursors.None, Mouse.OverrideCursor = Cursors.None; Mouse.OverrideCursor = null; к успеху не привели.
Здравствуйте, OlegN, Вы писали:
ON>Спасибо. К сожалению не помогает. Курсор остается видимым, превращаясь в Cursors.IBeam.
А что мешает назначить курсору пустую картинку? Теоретически, курсор от картинки отличается лишь хранением hit-point'а, указывающего на активную часть курсора. Именно по этой точке определяются координаты курсора, например.
Здравствуйте, OlegN, Вы писали:
ON>Ваяю C#,WPF приложение, которое будет использоваться в том числе и на мониторах с тачскрином. В этом случае курсор мыши только мешает. Как его сделать полностью невидимым? Эксперементы с this.Cursor = Cursors.None, Mouse.OverrideCursor = Cursors.None; Mouse.OverrideCursor = null; к успеху не привели.
ON>Спасибо за советы.
А может оставить его в покое? Я за все версии Windows конечно поручиться не могу, но у меня на нетбук'e, при переходе в режим таблетки, Windows 7 сама прячет мышиный курсор.
Но, если очень надо, попробуйте это:
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern int ShowCursor(bool bShow);
while(ShowCursor(false) >= 0);
т.е. каждый вызов ShowCursor увеличивает или уменьшает внутреннюю переменную на единицу. Курсор показывается если она больше или равна 0.
Здравствуйте, muse, Вы писали:
M>А что мешает назначить курсору пустую картинку?
Ничего, кроме лени и осадочка, что гланды удаляются перректально. Но, если не всплывет другого решения, так и сделааю. В конце концов мне ехать, а не "шашечки".
Здравствуйте, Gremlin2, Вы писали:
G>А может оставить его в покое? Я за все версии Windows конечно поручиться не могу, но у меня на нетбук'e, при переходе в режим таблетки, Windows 7 сама прячет мышиный курсор.
У меня приложение под XP и переход на семерку пока не предвидется.
G>Но, если очень надо, попробуйте это:
G>
Здравствуйте, OlegN, Вы писали:
ON>Здравствуйте, Gremlin2, Вы писали:
G>>А может оставить его в покое? Я за все версии Windows конечно поручиться не могу, но у меня на нетбук'e, при переходе в режим таблетки, Windows 7 сама прячет мышиный курсор.
ON>У меня приложение под XP и переход на семерку пока не предвидется.
G>>Но, если очень надо, попробуйте это:
G>>
G>>т.е. каждый вызов ShowCursor увеличивает или уменьшает внутреннюю переменную на единицу. Курсор показывается если она больше или равна 0.
ON>Попробовал, не помогает. Специально перепроверил, уже первый вызов ShowCursor(false) возвращает -1.
Что-то у меня закрались сомнения. Специально полез проверять. И так следующий кусок кода:
public partial class Window1 : Window
{
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern int ShowCursor(bool bShow);
public Window1()
{
InitializeComponent();
ShowCursor(false);
}
}
прилежно прячет курсор. (Система Windows XP SP2, Framework 3.5 SP1, VS2008).
p. s. Функция ShowCursor включает/выключает курсор только для окна приложения (это я так, на всякий случай )
Здравствуйте, OlegN, Вы писали:
ON>Ваяю C#,WPF приложение, которое будет использоваться в том числе и на мониторах с тачскрином. В этом случае курсор мыши только мешает. Как его сделать полностью невидимым? Эксперементы с this.Cursor = Cursors.None, Mouse.OverrideCursor = Cursors.None; Mouse.OverrideCursor = null; к успеху не привели.
Здравствуйте, Gremlin2, Вы писали:
G>Что-то у меня закрались сомнения. Специально полез проверять. И так следующий кусок кода:
G>
G> public partial class Window1 : Window
G> {
G> [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
G> public static extern int ShowCursor(bool bShow);
G> public Window1()
G> {
G> InitializeComponent();
G> ShowCursor(false);
G> }
G> }
G>
G>прилежно прячет курсор. (Система Windows XP SP2, Framework 3.5 SP1, VS2008).
Спасибо за помощь. У меня идентичное окружение (Система Windows XP SP2, Framework 3.5 SP1, VS2008) и я создал тестовое приложение с Вашим кодом. Но упорно вижу на экране в окне приложения курсор IBeam. Запускаю тот же код на еще одном компе с семеркой — курсор исчезает. Попробую переформулировать проблему:
Что посмотреть / проверить в настройках системы, чтобы избавиться от этого феномена?
Здравствуйте, OlegN, Вы писали:
G>>А что не так с this.Cursor = Cursors.None?
ON>Курсор не исчезает, а превращается в Сursors.IBeam ON>Что посмотреть / проверить в настройках системы, чтобы избавиться от этого феномена?
Он становится IBeam везде или только над текстбоксами? Возможно, конкретные элементы интерфейса устанавливают свой курсор (типа как текстбоксы), независимо от настроек курсора окна.
Здравствуйте, Gonzy, Вы писали:
G>Здравствуйте, OlegN, Вы писали:
G>>>А что не так с this.Cursor = Cursors.None?
ON>>Курсор не исчезает, а превращается в Сursors.IBeam ON>>Что посмотреть / проверить в настройках системы, чтобы избавиться от этого феномена?
G>Он становится IBeam везде или только над текстбоксами? Возможно, конкретные элементы интерфейса устанавливают свой курсор (типа как текстбоксы), независимо от настроек курсора окна.
Везде. Даже в тестовом приложении из одного "пустого" окна. Посмотрите мой диалог с gremlin2.
Здравствуйте, baranovda, Вы писали:
B>Здравствуйте, OlegN, Вы писали:
ON>>Везде. Даже в тестовом приложении из одного "пустого" окна. Посмотрите мой диалог с gremlin2.
B>Операционка какая? XP SP3/WinForms/WPF — после вызова ShowCursor(false) никаких Beam-ов не наблюдается, курсор невидим для всех контролов формы.
Операционка XP SP2.
У меня гипотеза появилась. Я работаю с компом удаленно. Возможно этот феномен как раз и создает удаленное соединение Windows7, а при прямой работе с компом все заработает. Проверить смогу не раньше четверга.
Здравствуйте, OlegN, Вы писали:
ON>Здравствуйте, baranovda, Вы писали:
B>>Здравствуйте, OlegN, Вы писали:
ON>>>Везде. Даже в тестовом приложении из одного "пустого" окна. Посмотрите мой диалог с gremlin2.
B>>Операционка какая? XP SP3/WinForms/WPF — после вызова ShowCursor(false) никаких Beam-ов не наблюдается, курсор невидим для всех контролов формы.
ON>Операционка XP SP2.
ON>У меня гипотеза появилась. Я работаю с компом удаленно. Возможно этот феномен как раз и создает удаленное соединение Windows7, а при прямой работе с компом все заработает. Проверить смогу не раньше четверга.
Проверил на Viste через RDP (клиент WinXP), курсор так-же продолжает пропадать. Так что, затаив дыхание, ждём четверга.
Сегодня хоть еще не четверг, но мне удалось протестировать комп в режиме прямого доступа.
Курсор мыши исчезает от простого "Cursors.None", а при удаленном доступе курсор продолжает не исчезать.
Большое спасибо всем принявшим участие в обсуждении — проблема решена.