如何创建圆形按钮,但颜色受绑定影响。
我已经有这样的事了:
<Button Command="{Binding ShowDetails}" Background="{Binding Color} />
并且将接收的颜色将采用此格式,例如:Colors.LightGray
任何人都可以帮助我吗?
答案 0 :(得分:3)
如果你谷歌搜索“圆形按钮模板silverlight”,你会发现很多描述这个过程的博客文章。包括之前的StackOverflow问题:
Silverlight: Creating a round button template
基本步骤是
ControlTemplate
,例如使用Ellipse
呈现一个圆圈。Buttton.Background
设置填充颜色,请使用TemplateBinding
作为Ellipse.Fill
属性。 例如:
<Button Content="MyButton">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Fill="{TemplateBinding Background}"/>
<ContentPresenter Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
答案 1 :(得分:0)
您必须为此按钮编写控件模板
<Button Content="MyButton">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Ellipse Fill="{TemplateBinding Background}"/>
<ContentPresenter x:Name="content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
答案 2 :(得分:0)
使用颜色绑定:
<UserControl.Resources>
<Color x:Key="MyColor">LightGray</Color>
<Style x:Key="RoundButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Width="40" Height="40" Stroke="#FF000000" StrokeThickness="1" Canvas.Left="141" Canvas.Top="61">
<Ellipse.Fill>
<SolidColorBrush Color="{StaticResource MyColor}" />
</Ellipse.Fill>
</Ellipse>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Button Style="{StaticResource RoundButton}" />
</Grid>
享受;)