我有以下的XAML代码:
<Window x:Class="WpfTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="227" Width="391">
<Window.Resources>
<ControlTemplate x:Key="PentagonButton" TargetType="{x:Type Button}">
<Grid>
<Path Data="M 0,-1 L -.95,-.3 L -.58,.8 L .58,.8 L .95,-.3 Z" Stroke="Black" Stretch="Uniform" Fill="Red" />
<Viewbox>
<ContentPresenter Margin="20" />
</Viewbox>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<Button Content="red" Margin="12,19,0,0" Template="{StaticResource PentagonButton}" HorizontalAlignment="Left" Width="166" Height="151" VerticalAlignment="Top" />
<Button Content="blue" Margin="178,19,0,0" Template="{StaticResource PentagonButton}" Height="151" VerticalAlignment="Top" HorizontalAlignment="Left" Width="173" />
</Grid>
</Window>
因为Fill="Red",显然所有的按钮都会有红色的填充/背景颜色。我想将此模板用于多个按钮,但每个按钮都有不同的填充颜色,在设计时已知。设置背景颜色没有效果,所以我必须改变Fill颜色,但我不能在实际按钮定义中重新定义Path属性。如何在XAML中访问和覆盖此属性?
<Setter Property="Background" Value="Red" />
行。如果您不需要这个功能,则直接使用模板即可。 - ToolmakerSteve