在WPF中,为什么我的按钮边框不显示?

在WPF中,为什么我的按钮边框不显示?,wpf,xaml,user-interface,Wpf,Xaml,User Interface,我为XAML中的按钮创建了以下样式: <Style x:Key="ButtonStyle" TargetType="Button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Border Background="#FFFEFF" Borde

我为XAML中的按钮创建了以下样式:

<Style x:Key="ButtonStyle" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Background="#FFFEFF" BorderBrush="white" BorderThickness="0.8" CornerRadius="3">
                    <Button Background="#FFFEFF" Foreground="#009999">
                        <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        <Button.Effect>
                            <DropShadowEffect Color="#BABABA" ShadowDepth="2"/>
                        </Button.Effect>
                    </Button>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>


由于某些原因,边框更改未显示,因此我无法更改角半径。投影效果很好。这可能很简单,但我第一次在XAML和C#中跌跌撞撞地完成了!我厌倦了在样式中的不同setter下列出边框,但这只会导致在按钮的方形边缘下看到边框

看起来您需要将边框效果带到按钮之外的边框元素中。通过将边框效果放置在按钮内部,可以使效果与按钮的形状一致,而不是与边框一致,并且由于按钮具有方形角,因此尽管边框角是圆角,但它始终显示为方形。有关示例,请参阅本文:


 <Style x:Key="ButtonStyle" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Background="#FFFEFF" BorderBrush="white"     BorderThickness="0.8" CornerRadius="3">
                     <Border.Effect>
                          <DropShadowEffect Color="#BABABA" ShadowDepth="2"/>
                     </Border.Effect>
                    <Button Background="#FFFEFF" Foreground="#009999">
                        <ContentPresenter Content="{TemplateBinding Content}"      HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Button>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>