Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Canvas.Left="25" Canvas.Top="12"/> <Ellipse Name = "innerEllipse" Fill ="Yellow" Height = "15" Width ="36" Canvas.Top="17" Canvas.Left="32"/> </Canvas> </StackPanel> </Button> </Grid></Window>Обратите внимание, что в открывающем определении элемента
ButtonClickClickRoutedEventHandlerobjectSystem.Winodws.RoutedEventArgspublic void btnClickMe_Clicked(object sender, RoutedEventArgs e){<b> // Делать что-нибудь, когда на кнопке произведен щелчок.</b> MessageBox.Show("Clicked the button");}После запуска приложения окно сообщения будет отображаться независимо от того, на какой части содержимого кнопки был выполнен щелчок (зеленый элемент
EllipseEllipseLabelButtonClickButtonК счастью, маршрутизируемые события WPF позаботятся об автоматическом вызове единственного обработчика события
ClickТочнее говоря, маршрутизируемое событие может использовать три стратегии маршрутизации. Если событие перемещается от точки возникновения вверх к другим областям определений внутри дерева объектов, то его называют пузырьковым событием. И наоборот, если событие перемещается от самого внешнего элемента (например,
WindowРоль пузырьковых маршрутизируемых событий
В текущем примере, когда пользователь щелкает на внутреннем овале желтого цвета, событие
ClickCanvasStackPanelButtonLabelStackPanelButtonБлагодаря такому шаблону пузырьковых маршрутизируемых событий не придется беспокоиться о регистрации специфичных обработчиков события
ClickВ целях иллюстрации предположим, что щелчок на элементе управления
outerEllipseMouseDownEllipseClickMouseDownMouseUp<Button Name="btnClickMe" Height="75" Width = "250" Click ="btnClickMe_Clicked"> <StackPanel Orientation ="Horizontal"> <Label Height="50" FontSize ="20">Fancy Button!</Label> <Canvas Height ="50" Width ="100" > <Ellipse Name = "outerEllipse" Fill ="Green" Height ="25" <b>MouseDown ="outerEllipse_MouseDown"</b> Width ="50" Cursor="Hand" Canvas.Left="25" Canvas.Top="12"/> <Ellipse Name = "innerEllipse" Fill ="Yellow" Height = "15" Width ="36" Canvas.Top="17" Canvas.Left="32"/> </Canvas> </StackPanel></Button>Затем реализуйте подходящий обработчик событий, который в демонстрационных целях будет просто изменять свойство
Titlepublic void outerEllipse_MouseDown(object sender, MouseButtonEventArgs e){<b> // Изменить заголовок окна.</b>Похожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.