Одно общее событие для всех элементов управления в Silverlight - PullRequest
1 голос
/ 19 мая 2010

У меня есть пара элементов управления текстовым блоком, и все они вызывают одно событие.Но я должен подключить их все по отдельности, используя

TextBlock1.MouseMove += new MouseEventHandler(TextBlock_MouseMove);    
TextBlock2.MouseMove += new MouseEventHandler(TextBlock_MouseMove);   
TextBlock3.MouseMove += new MouseEventHandler(TextBlock_MouseMove); 

Есть ли способ, которым я могу применить перемещение мыши ко всем TextBlock, не подключая их один за другим

1 Ответ

1 голос
/ 19 мая 2010

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

foreach(TextBlock vControl in GridName.Children)
{
    vControl.MouseMove += new MouseEventHandler(TextBlock_MouseMove);
}

Теперь я могу ошибаться в части foreach. Это может потребоваться от объекта в зависимости от того, как они хранятся в коллекции Children. Хотя это будет хорошо, если у вас будет много текстовых полей, вы также можете стилизовать текстовые поля для выдачи команды при перемещении мыши, но для этого требуется куча кода, что значительно облегчает выполнение этого.

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