Escribir su propio estilo de WPF - Botón

En este artículo se reimprime de: https://www.cnblogs.com/xinwang/p/4354182.html Autor: Xinwang reproduce, por favor indique el comunicado.

  Hacer un pequeño programa de gestión de fondo, se dice que la interfaz de WPF más "flip", por lo que optó por utilizar WPF para desarrollar. Ahora, con el aspecto de WPF necesidad supuesto a hacer, tan poco estudiada bajo el WPF estilo , preámbulos, vamos a empezar un estilo de botón personalizado:

(1) En el archivo App.xaml personalizar un estilo de botón, "MyWpfButton":

< Aplicación x: Class = "WPFCustomerStyleStudy.App" 
             xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns: x = "http://schemas.microsoft.com/winfx/2006 / xaml " 
             StartupUri = "MainWindow.xaml" > 
    < Application.Resources > 
        < Estilo x: Key = "MyWpfButton" TargetType =" {x: Tipo de botón} "  > 
            
        </ Style > 
    </ Application.Resources > 
</ Aplicación >

(2) desde el fondo del botón de color personalizado color de primer plano, prefieren personalmente atmósfera azul:

tip1: personalizar un poco de color, color de fondo como el color de primer plano botón de fácil reutilización  

tip2: Si selecciona el color gradiente de selección relativamente cerca a más atractivo gradiente de dos colores

* Tip3: editar utilizando la herramienta de mezcla

< Aplicación x: Class = "WPFCustomerStyleStudy.App" 
             xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns: x = "http://schemas.microsoft.com/winfx/2006 / xaml" 
             StartupUri = "MainWindow.xaml" > 
    < Application.Resources > 
        <! - 自定义颜色-> 
        < LinearGradientBrush x: Key = "LinearGradientBlueBackground" EndPoint = "0.5,1" StartPoint = "0.5,0" > 
            < GradientStop color = "# FF377FED"Offset = "0"  /> 
            <GradientStop color = "# FF074CC0" Offset = "1"  /> 
        </ LinearGradientBrush > 
        < color x: Key = "MyBtnBorderColor" > # FF2D78F4 </ color > 
        <! - END -> 
        
        < Estilo x: Key = "MyWpfButton " TargetType =" {x: Tipo de botón} "  > 
            < Setter propiedad =" fondo " Valor =" {} StaticResource LinearGradientBlueBackground " > </ Setter > 
            < SetterPropiedad = "primer plano" Valor = "blanco" > </ Setter > 
            < Setter propiedad = "BorderBrush" Valor = " {} StaticResource MyBtnBorderColor " > </ Setter > 
        </ Style > 
    </ Application.Resources > 
</ Aplicación >

Botón de abajo para obligar a la próxima estilo, comparamos el siguiente efecto:

No es repente altura y, sin embargo, hacerlo funcionar para que los resultados se encuentra el ratón después de la hora del color o del color original, vamos a seguir mejorando.

(3) una nueva plantilla, añadir esquinas redondeadas a un botón, puntero del ratón sobre el fondo:

< Aplicación x: Class = "WPFCustomerStyleStudy.App" 
             xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns: x = "http://schemas.microsoft.com/winfx/2006 / xaml" 
             StartupUri = "MainWindow.xaml" > 
    < Application.Resources > 
        <! - 自定义颜色-> 
        < LinearGradientBrush x: Key = "LinearGradientBlueBackground" EndPoint = "0.5,1" StartPoint = "0.5,0" > 
            < GradientStop color = "# FF377FED"Offset = "0"  /> 
            <GradientStop color = "# FF074CC0" Offset = "1"  /> 
        </ LinearGradientBrush > 
        < SolidColorBrush x: Key = "MyBtnBorderColor" color = "# FF2D78F4" > </ SolidColorBrush > 
        < SolidColorBrush x: Key = "MyBtnHoverBackgroundColor" color =" # FF317EF3" > </ SolidColorBrush > 
        <! - END -> 
        
        < Estilo x: Key = "MyWpfButton" TargetType = " {x}: Tipo de botón " > 
            < Setter Propiedad= "Fondo" Valor = " {StaticResource LinearGradientBlueBackground} " > </ Setter > 
            < Setter propiedad =" primer plano" Valor = "blanco" > </ Setter > 
            < Setter propiedad = "BorderBrush" Valor = " {StaticResource MyBtnBorderColor} " > </ Setter > 
            < Setter propiedad = "plantilla" > 
                < Setter.Value > 
                    <ControlTemplate TargetType = " {x: Tipo de botón} " >
                        < Border x: Name = "border" BorderBrush = " {} TemplateBinding BorderBrush " BorderThickness =" {} TemplateBinding BorderThickness " Antecedentes =" {} TemplateBinding Antecedentes "  
                                SnapsToDevicePixels =" true" CornerRadius = "3,3,3,3" > 
                            < ContentPresenter x: Name = "ContentPresenter"  
                                              enfocable = "false"  
                                              HorizontalAlignment ="{} TemplateBinding HorizontalContentAlignment"  
                                              Margen =" {} TemplateBinding Relleno "  
                                              RecognizesAccessKey =" "True  
                                              SnapsToDevicePixels =" {} TemplateBinding SnapsToDevicePixels " 
                                              VerticalAlignment =" {} TemplateBinding VerticalContentAlignment "   /> 
                        </ Frontera > 
                        < ControlTemplate.Triggers > 
                            < Disparador propiedad =" IsMouseOver" Valor = "cierto"> 
                                <Setter propiedad = "fondo" TargetName = "border" Valor = " {} StaticResource MyBtnHoverBackgroundColor " /> 
                            </ Disparador > 
                        </ ControlTemplate.Triggers > 
                    </ ControlTemplate > 
                </ Setter.Value > 
            </ Setter > 
        </ Style > 
    < / Application.Resources > 
</ Aplicación >

Estilo simple botón atmósfera completa, ver el siguiente efecto:

Por favor indique la fuente: http: //www.cnblogs.com/xinwang/p/4354182.html

 

Artículos originales publicados 0 · ganado elogios 136 · vistas 830 000 +

Supongo que te gusta

Origin blog.csdn.net/xfxf996/article/details/103870325
Recomendado
Clasificación