我是表达混合的新手。我有一个包含9个路径的画布,我想将前4个路径转换为按钮,其余5个路径转换为另一个按钮?
我找到了一种方法,只将1个路径转换为按钮而不是多个路径。
答案 0 :(得分:2)
下面的XAML是一个快速(又丑陋)的例子,它使用4个路径和1个矩形为具有自定义外观的按钮创建样式。
<Style x:Key="btnFromPaths" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle Width="200" Height="40" Fill="#FF87DECD" StrokeThickness="2" Stroke="#FF000000"/>
<Path Fill="#FF8A8A8A" StrokeThickness="2" Stroke="#FF000000" >
<Path.Data>
<PathGeometry Figures="m 60 30 a 30 30 0 1 1 -60 0 30 30 0 1 1 60 0 z" FillRule="nonzero"/>
</Path.Data>
</Path>
<Path Fill="#FFAA0000" StrokeThickness="2" Stroke="#FF000000">
<Path.Data>
<PathGeometry Figures="m 200 30 a 30 30 0 1 1 -60 0 30 30 0 1 1 60 0 z" FillRule="nonzero"/>
</Path.Data>
</Path>
<Path Fill="#FF808000" StrokeThickness="2" Stroke="#FF000000" >
<Path.Data>
<PathGeometry Figures="m 60 50 a 30 30 0 1 1 -60 0 30 30 0 1 1 60 0 z" FillRule="nonzero"/>
</Path.Data>
</Path>
<Path Fill="#FF00AAD4" StrokeThickness="2" Stroke="#FF000000" >
<Path.Data>
<PathGeometry Figures="m 200 50 a 30 30 0 1 1 -60 0 30 30 0 1 1 60 0 z" FillRule="nonzero"/>
</Path.Data>
</Path>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"
SnapsToDevicePixels="True"
Margin="5,1"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
将此样式应用于任何按钮将覆盖该按钮的默认控件模板,例如:
<Button Content="My Button Text"
Style="{StaticResource btnFromPaths}"/>
此语法要求您的按钮样式存储在项目可访问的资源字典中。