UWP 圆角按钮样式

来源:互联网 发布:中国电影票房数据库 编辑:程序博客网 时间:2024/06/06 09:37
微软真是食屎了,乱改XAML语言,Morther Fuck!
代码如下:
        <Style x:Key="ButtonStyle1"               TargetType="Button">            <Setter Property="Background"                    Value="{ThemeResource ButtonBackground}" />            <Setter Property="Foreground"                    Value="{ThemeResource ButtonForeground}" />            <Setter Property="BorderBrush"                    Value="{ThemeResource ButtonBorderBrush}" />            <Setter Property="BorderThickness"                    Value="{ThemeResource ButtonBorderThemeThickness}" />            <Setter Property="Padding"                    Value="8,4,8,4" />            <Setter Property="HorizontalAlignment"                    Value="Left" />            <Setter Property="VerticalAlignment"                    Value="Center" />            <Setter Property="FontFamily"                    Value="{ThemeResource ContentControlThemeFontFamily}" />            <Setter Property="FontWeight"                    Value="Normal" />            <Setter Property="FontSize"                    Value="{ThemeResource ControlContentThemeFontSize}" />            <Setter Property="UseSystemFocusVisuals"                    Value="True" />            <Setter Property="FocusVisualMargin"                    Value="-3" />            <Setter Property="Template">                <Setter.Value>                    <ControlTemplate TargetType="Button">                        <Grid x:Name="RootGrid" CornerRadius="20"                              Background="{TemplateBinding Background}">                            <VisualStateManager.VisualStateGroups>                                <VisualStateGroup x:Name="CommonStates">                                    <VisualState x:Name="Normal">                                        <Storyboard>                                            <PointerUpThemeAnimation Storyboard.TargetName="RootGrid" />                                        </Storyboard>                                    </VisualState>                                    <VisualState x:Name="PointerOver">                                        <Storyboard>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"                                                                           Storyboard.TargetName="RootGrid">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBackgroundPointerOver}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBorderBrushPointerOver}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonForegroundPointerOver}" />                                            </ObjectAnimationUsingKeyFrames>                                            <PointerUpThemeAnimation Storyboard.TargetName="RootGrid" />                                        </Storyboard>                                    </VisualState>                                    <VisualState x:Name="Pressed">                                        <Storyboard>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"                                                                           Storyboard.TargetName="RootGrid">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBackgroundPressed}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBorderBrushPressed}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonForegroundPressed}" />                                            </ObjectAnimationUsingKeyFrames>                                            <PointerDownThemeAnimation Storyboard.TargetName="RootGrid" />                                        </Storyboard>                                    </VisualState>                                    <VisualState x:Name="Disabled">                                        <Storyboard>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"                                                                           Storyboard.TargetName="RootGrid">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBackgroundDisabled}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonBorderBrushDisabled}" />                                            </ObjectAnimationUsingKeyFrames>                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"                                                                           Storyboard.TargetName="ContentPresenter">                                                <DiscreteObjectKeyFrame KeyTime="0"                                                                        Value="{ThemeResource ButtonForegroundDisabled}" />                                            </ObjectAnimationUsingKeyFrames>                                        </Storyboard>                                    </VisualState>                                </VisualStateGroup>                            </VisualStateManager.VisualStateGroups>                            <ContentPresenter x:Name="ContentPresenter" CornerRadius="20"                                              AutomationProperties.AccessibilityView="Raw"                                              BorderBrush="{TemplateBinding BorderBrush}"                                              BorderThickness="{TemplateBinding BorderThickness}"                                              ContentTemplate="{TemplateBinding ContentTemplate}"                                              ContentTransitions="{TemplateBinding ContentTransitions}"                                              Content="{TemplateBinding Content}"                                              HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"                                              Padding="{TemplateBinding Padding}"                                              VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />                        </Grid>                    </ControlTemplate>                </Setter.Value>            </Setter>        </Style>
注意:UWP不能外层套个Border和WPF不同,套上就不行了。。。骂人,最外层设置好CornerRadius="20",同时设置ContentPresenter的CornerRadius="20",不然不协调。

效果如下:

0 0
原创粉丝点击