C# Can';在WPF圆形按钮(XAML)中获取边框
在我的项目中,我创建了一个圆形按钮。在这方面,我面临两个问题 1) border想要红色和金色,但我只有金色的border 2) 我用箭头作为内容。但是看起来不太好 下图解释了我的模型和我在项目中得到的东西 我的XAMLC# Can';在WPF圆形按钮(XAML)中获取边框,c#,wpf,xaml,button,C#,Wpf,Xaml,Button,在我的项目中,我创建了一个圆形按钮。在这方面,我面临两个问题 1) border想要红色和金色,但我只有金色的border 2) 我用箭头作为内容。但是看起来不太好 下图解释了我的模型和我在项目中得到的东西 我的XAML <Window.Resources> <Style TargetType="{x:Type Button}" x:Key="roundButton"> <Style.Resources>
<Window.Resources>
<Style TargetType="{x:Type Button}" x:Key="roundButton">
<Style.Resources>
<RadialGradientBrush x:Key="roundButtonStroke">
<GradientStop Color="red" Offset="0.5" />
<GradientStop Color="Gold" Offset="1" />
</RadialGradientBrush>
<LinearGradientBrush x:Key="roundButtonBackground" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Gold" Offset="0.0" />
<GradientStop Color="#FEFFD2" Offset="0.5" />
<GradientStop Color="Gold" Offset="1.1" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Foreground" Value="Black" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" >
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="7*" />
<RowDefinition Height="7*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Ellipse x:Name="bgEllipse" Grid.ColumnSpan="3" Grid.RowSpan="3" Fill="{StaticResource roundButtonBackground}" StrokeThickness="5" Stroke="{StaticResource roundButtonStroke}" />
<ContentPresenter Grid.RowSpan="3" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Width="100" Height="100" Foreground="#CD3234" FontSize="44" Content="->" Style="{StaticResource roundButton}" ></Button>
</Grid>
首先,你应该画两个椭圆来实现这一点,一个是纯红笔划和纯金背景,另一个稍小一点,笔划和线性渐变背景相同 样本:
<Grid Width="100" Height="100">
<Ellipse Stroke="Red" StrokeThickness="1" Fill="Gold"></Ellipse>
<Ellipse Stroke="Red" StrokeThickness="1" Margin="5">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Gold" Offset="0.0" />
<GradientStop Color="#FEFFD2" Offset="0.5" />
<GradientStop Color="Gold" Offset="1.1" />
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
至于箭,你可以放一个,或者某种形式的
Wingdings示例:
<Button Style="{DynamicResource RoundGoldenButton}">
<TextBlock VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="Red"
FontFamily="WingDings">à</TextBlock>
</Button>
à
这将为您提供以下信息:好的,先生,我如何设置一个较小的椭圆?因为您位于网格内,只需在较小的椭圆上添加一个边距即可