xaml如何创建具有绑定颜色的圆形按钮
本文关键字:颜色 绑定 按钮 何创建 创建 xaml | 更新日期: 2023-09-27 18:00:37
如何创建一个圆形按钮,但颜色受绑定影响。
我已经有了这样的东西:
<Button Command="{Binding ShowDetails}" Background="{Binding Color} />
并且将接收的颜色将是这种格式,例如:颜色。浅灰色
有人能帮我吗?
如果你在谷歌上搜索"圆形按钮模板silverlight",你会发现很多描述这个过程的博客文章。包括以前的StackOverflow问题:
Silverlight:创建圆形按钮模板
基本步骤是
- 为渲染圆的按钮创建一个新的
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>
您必须为类似的按钮编写控制模板
<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>
具有颜色绑定:
<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>
享受;)