XAML 在wpf中更改按钮形状

kx1ctssn  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(169)

我想改变一个按钮,所以它将有椭圆形。我使用wpf应用程序。
我看到了一些答案,有人提供了“简单”的东西,我没有得到它。而且我不想添加图像(这也是对问题的回答)。

46scxncf

46scxncf1#

提供的答案是正确的,如果你打算在单个按钮上应用,但真实的问题,如果你想在多个按钮上使用相同的模板,那么这将是一个问题。为此,请按照下面的方法
首先创建一个名为Styles.xaml的新资源字典(作为示例),并将以下样式添加到其中:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:SampleCodeWorkSpace">

    <Style TargetType="Button" x:Key="EllipseButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Ellipse Fill="{TemplateBinding Background}"/>
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center">
                        </ContentPresenter>
                    </Grid>
                </ControlTemplate>
                
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="Button" x:Key="RoundedButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border CornerRadius="8" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"  
                                BorderThickness="1">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center">
                        </ContentPresenter>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

字符串
接下来,将资源字典引用添加到App.xaml

<Application x:Class="SampleCodeWorkSpace.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:SampleCodeWorkSpace"
         StartupUri="MainWindow.xaml">
<Application.Resources>
    <ResourceDictionary Source="Styles.xaml"></ResourceDictionary>
</Application.Resources>


最后,将样式添加到所需按钮,如下所示

<Button Content="Button" Foreground="Black"             
   HorizontalAlignment="Left" VerticalAlignment="Top" 
   Width="328" Height="188" Click="Button_Click" Style=" 
   {StaticResource EllipseButton}" />


App.xamlStyle.xaml中,确保将xmlns:local更改为项目的命名空间

nfzehxib

nfzehxib2#

在XAML中尝试以下操作:

<Button Click="Button_Click">
        <Button.Template>
            <ControlTemplate TargetType="Button">
                <Grid>
                    <Ellipse Fill="{TemplateBinding Background}"/>
                    <ContentPresenter/>
                </Grid>
            </ControlTemplate>
        </Button.Template>
    </Button>

字符串

相关问题