WPF Button ControlTemplate ContentPresenter TextElement.FontSize TemplateBinding FontSize

        <Button Content="Custom Button" Background="Gold" 
                FontSize="30" Grid.Column="0" BorderBrush="Green" BorderThickness="5">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="border"
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}"
                    CornerRadius="4">
                        <ContentPresenter x:Name="contentPresenter"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  RecognizesAccessKey="True" 
                                  TextElement.FontSize="{TemplateBinding FontSize}">
                        </ContentPresenter>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="Background" Value="Blue"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="Yellow"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="10"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="50"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="border" Property="Background" Value="Cyan"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="Red"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="20"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="100"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="border" Property="Opacity" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>

 

image

 

 

 

image

 

 

 

 

image

 

<Window x:Class="WpfApp22.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        WindowState="Maximized"
        xmlns:local="clr-namespace:WpfApp22"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Button Content="Custom Button" Background="Gold" 
                FontSize="30" Grid.Column="0" BorderBrush="Green" BorderThickness="5">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="border"
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}"
                    CornerRadius="4">
                        <ContentPresenter x:Name="contentPresenter"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  RecognizesAccessKey="True" 
                                  TextElement.FontSize="{TemplateBinding FontSize}">
                        </ContentPresenter>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="Background" Value="Blue"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="Yellow"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="10"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="50"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="border" Property="Background" Value="Cyan"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="Red"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="20"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="100"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="border" Property="Opacity" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>

        <Button Grid.Row="1" Content="Second Button"
                Background="Beige"
                FontSize="30"
                BorderBrush="Blue"
                BorderThickness="10">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="border"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            CornerRadius="10">
                        <ContentPresenter x:Name="contentPresenter"
                                          HorizontalAlignment="Center"
                                          VerticalAlignment="Center"
                                          TextElement.FontSize="{TemplateBinding FontSize}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="Background" Value="LightGreen"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="LightBlue"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="20"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="50"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="border" Property="Background" Value="LightCoral"/>
                            <Setter TargetName="border" Property="BorderBrush" Value="DarkGoldenrod"/>
                            <Setter TargetName="border" Property="BorderThickness" Value="30"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="70"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>                
            </Button.Template>
        </Button>

        <Button Grid.Row="0" Grid.Column="1"
                Content="Third Button" FontSize="30"
                Background="LightCoral" BorderBrush="DarkBlue" BorderThickness="10">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="bd"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <ContentPresenter x:Name="contentPresenter"
                                          VerticalAlignment="Center"
                                          HorizontalAlignment="Left"
                                          TextElement.FontSize="{TemplateBinding FontSize}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="bd" Property="Background" Value="Red"/>
                            <Setter TargetName="bd" Property="BorderBrush" Value="DarkGoldenrod"/>
                            <Setter TargetName="bd" Property="BorderThickness" Value="20"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="50"/>
                        </Trigger>

                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="bd" Property="Background" Value="Green"/>
                            <Setter TargetName="bd" Property="BorderBrush" Value="Cyan"/>
                            <Setter TargetName="bd" Property="BorderThickness" Value="30"/>
                            <Setter TargetName="contentPresenter" Property="TextElement.FontSize" Value="100"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>

        <Button Grid.Row="1" Grid.Column="1" Content="Forth Button" FontSize="30" Background="Red" BorderBrush="Green"
                BorderThickness="10">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="bd4"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <ContentPresenter x:Name="contentPresent4"
                                          HorizontalAlignment="Right"
                                          VerticalAlignment="Center"
                                          TextElement.FontSize="{TemplateBinding FontSize}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="bd4" Property="Background" Value="Blue"/>
                            <Setter TargetName="bd4" Property="BorderBrush" Value="Red"/>
                            <Setter TargetName="bd4" Property="BorderThickness" Value="30"/>
                            <Setter TargetName="contentPresent4" Property="TextElement.FontSize" Value="50"/>
                        </Trigger>

                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="bd4" Property="Background" Value="Green"/>
                            <Setter TargetName="bd4" Property="BorderBrush" Value="Blue"/>
                            <Setter TargetName="bd4" Property="BorderThickness" Value="50"/>
                            <Setter TargetName="contentPresent4" Property="TextElement.FontSize" Value="100"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</Window>

 

posted @ 2025-09-19 10:16  FredGrit  阅读(10)  评论(0)    收藏  举报