Основы проектирования интерфейсов с использованием технологии Windows Presentation Foundation. Шамшев Ан. Б. - 128 стр.

UptoLike

Составители: 

128
можно сравнить ее текст (этот способ может привести к проблемам с
локализацией) или ее имя. Лучше всего проверить, было ли задано
свойство Name каждой кнопки с помощью XAML, чтобы имелся дос-
туп к соответствующему объекту посредством поля в классе окна и
сравнить эту ссылку с отправителем события. Ниже показан пример:
privatevoidDoSomething(objectsender,RoutedEventArgse)
{
if(sender==cmdl){...1
else
if(sender==cmd2){...)
else
if(sender==cmd3){...}
}
Существует еще один вариантвместе с кнопкой отправить
порцию информации, которую можно использовать в коде. Например,
можно задать свойство Tag каждой кнопки, как показано ниже:
<StackPanelClick="DoSomething"Margin="5">
<ButtonName="cmdl"Tag="Thefirstbutton.">Commandl</Button>
<ButtonName="cmd2"Tag="Thesecondbutton.">Command2</Button>
<ButtonName="cmd3"Tag="Thethirdbutton,">Command3</Button>
</StackPanel>
После этого можно обращаться к свойству Tag в коде:
privatevoidDoSomething(objectsender,RoutedEventArgse)
{
objecttag=((FrameworkElement)sender).Tag;
MessageBox.Show((string)tag);
}
5.4.1. Туннельные события
Туннельные события работают точно так же, как и поднимаю-
щиеся события, но в обратном направлении. Например, если бы собы-
тие MouseUp было туннельным, то при щелчке на метке событие
MouseUp возникло бы сначала в окне, затем в элементе Grid, затем в