我想改变一个按钮,所以它将有椭圆形。我使用wpf应用程序。我看到了一些答案,有人提供了“简单”的东西,我没有得到它。而且我不想添加图像(这也是对问题的回答)。
46scxncf1#
提供的答案是正确的,如果你打算在单个按钮上应用,但真实的问题,如果你想在多个按钮上使用相同的模板,那么这将是一个问题。为此,请按照下面的方法首先创建一个名为Styles.xaml的新资源字典(作为示例),并将以下样式添加到其中:
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
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.xaml和Style.xaml中,确保将xmlns:local更改为项目的命名空间
Style.xaml
xmlns:local
nfzehxib2#
在XAML中尝试以下操作:
<Button Click="Button_Click"> <Button.Template> <ControlTemplate TargetType="Button"> <Grid> <Ellipse Fill="{TemplateBinding Background}"/> <ContentPresenter/> </Grid> </ControlTemplate> </Button.Template> </Button>
字符串
2条答案
按热度按时间46scxncf1#
提供的答案是正确的,如果你打算在单个按钮上应用,但真实的问题,如果你想在多个按钮上使用相同的模板,那么这将是一个问题。为此,请按照下面的方法
首先创建一个名为
Styles.xaml
的新资源字典(作为示例),并将以下样式添加到其中:字符串
接下来,将资源字典引用添加到
App.xaml
型
最后,将样式添加到所需按钮,如下所示
型
在
App.xaml
和Style.xaml
中,确保将xmlns:local
更改为项目的命名空间nfzehxib2#
在XAML中尝试以下操作:
字符串