Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
VerticalAlignment="Center" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20" Content="OK!"/> </Grid> </ControlTemplate> </Button.Template></Button>Здесь определен шаблон, который состоит из именованного элемента
GridEllipseLabelGridClickEllipsePolygonШаблоны как ресурсы
В текущий момент ваш шаблон внедрен в специфический элемент управления
ButtonButtonButtonApplication.ResourcesАрр.xamlKeyTargetType<Application.Resources> <ControlTemplate x:Key="RoundButtonTemplate" TargetType="{x:Type Button}"> <Grid x:Name="controlLayout"> <Ellipse x:Name="buttonSurface" Fill="LightBlue"/> <Label x:Name="buttonCaption" VerticalAlignment="Center" HorizontalAlignment="Center" FontWeight="Bold" FontSize="20" Content="OK!"/> </Grid> </ControlTemplate></Application.Resources>Модифицируйте разметку для
Button<Button x:Name="myButton" Width="100" Height="100" Click="myButton_Click"<b> Template="{StaticResource RoundButtonTemplate}"></b></Button>Из-за того, что этот ресурс доступен всему приложению, можно определять любое количество круглых кнопок, просто применяя имеющийся шаблон. В целях тестирования создайте два дополнительных элемента управления
ButtonClick<StackPanel> <Button x:Name="myButton" Width="100" Height="100" Click="myButton_Click" Template="{StaticResource RoundButtonTemplate}"></Button> <Button x:Name="myButton2" Width="100" Height="100" Template="{StaticResource RoundButtonTemplate}"></Button> <Button x:Name="myButton3" Width="100" Height="100" Template="{StaticResource RoundButtonTemplate}"></Button></StackPanel>Встраивание визуальных подсказок с использованием триггеров
При определении специального шаблона также удаляются все визуальные подсказки стандартного шаблона. Например, стандартный шаблон кнопки содержит разметку,которая задает внешний вид элемента управления при возникновении определенных событий пользовательского интерфейса, таких как получение фокуса, щелчок кнопкой мыши, включение (или отключение) и т.д. Пользователи довольно хорошо приучены к визуальным подсказкам подобного рода, т.к. они придают элементу управления некоторую осязаемую реакцию. Тем не менее, в шаблоне
RoundButtonTemplateЗадачу можно решить с применением триггеров, как вы только что узнали. Для простых операций триггеры работают просто великолепно. Существуют дополнительные способы достижения цели, которые выходят за рамки настоящей книги, но больше информации доступно по адресу
https://docs.microsoft.com/ru-ru/dotnet/desktop/wpf/controls/how-to-create-apply-templateВ качестве примера обновите шаблон
RoundButtonTemplateGrid