Полупрозрачная форма, которая пропускает (или отправляет на фон) ввод мыши? - PullRequest
0 голосов
/ 04 декабря 2010

Как я могу сделать форму, чтобы что бы я ни делал с мышью на ней, это будет похоже на то, что формы там нет и все, что находится позади (что будет частью моего приложения), получит все данные мыши.То, что я хочу сделать, это в основном учебник, который выделяет элементы управления, на которые пользователь должен щелкнуть.Я знаю, как генерировать клики, но я хотел бы расширить функциональность для каждого возможного ввода мышью.Я попытался обработать WndProc в моей форме и отправить сообщение всем, кто находится позади, но это было беспорядок.Есть ли лучший способ сделать это?

Другая возможность - сохранить форму прозрачной и рисовать вокруг любого элемента управления, получающего ввод от мыши, но я просто хочу знать, выделена ли вещь (закрашивание элемента управления полупрозрачнымкисть).

1 Ответ

0 голосов
/ 04 декабря 2010

Создание учебного окна (полупрозрачного) с конструктором, принимающим параметр родительского окна. В событиях MouseDown / MouseUp окна вызывайте обработчик событий мыши down / mouse up родительского элемента.

публичный частичный класс ParentWindow: Window { public ParentWindow () { InitializeComponent (); }

private void testButton_Click(object sender, RoutedEventArgs e)
{
    TutorialWindow tutorialWindow = new TutorialWindow(this);
    tutorialWindow.Show();
}

public void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    // Do something
}

}

И класс TutorialWindow

открытый частичный класс TutorialWindow: Window { закрытый родитель ParentWindow;

public TutorialWindow(ParentWindow parent)
{
    InitializeComponent();
    this.parent = parent;
}

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    this.parent.Window_MouseDown(sender, e);
}
*

} * 1013

Свойства окна Tutorial могут быть изменены, чтобы сделать его полупрозрачным и даже «исчезать», когда пользователь щелкает в окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...