【发布时间】:2017-03-01 09:08:29
【问题描述】:
我正在我的应用程序中创建按钮样式,但我注意到对于每个按钮我必须一次又一次地重复相同的步骤,我正在以下模板中寻找一种方法,以便我可以传递 Path 元素的特定属性或每个按钮的路径不同,但所有其他元素将相同且顺序相同,我尝试在这里搜索但无法找到对我有帮助的任何特定示例,这是 xaml :
<ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
<Grid x:Name="MainGrid">
<Rectangle
x:Name="MainRectangle"
Fill="#00000000"
RadiusX="5"
RadiusY="5"/>
<ContentPresenter
x:Name="Presenter"
HorizontalAlignment="Center"
VerticalAlignment="Center"
TextBlock.Foreground="#BB225588"/>
<Path Name="Minimize" Data="M0,0L32,0 32,8.6899995 0,8.6899995z" Stretch="Fill" Fill="White" StrokeThickness="2" Width="17" Height="5" VerticalAlignment="Center" HorizontalAlignment="Center"
Stroke="White" >
</Path>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="2" Color="White" BlurRadius="20"></DropShadowEffect>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="MainRectangle" Property="Fill" Value="{StaticResource ClickEffect}"/>
<Setter TargetName="Minimize" Property="Stroke" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
现在在上面的模板中,我想要的是某种方式与每个按钮绑定 Path 元素属性或某种方式为每个按钮注入不同的 Path 元素,其余部分将保持不变,所以我不想重复同样的风格一次又一次。我怎样才能实现它。
【问题讨论】:
-
这个is how I do it 所以你的路径被保存为资源,你只需在每个实例上通过在模板中绑定的
Tag属性上实现它们。仅限 xml。 -
会看看那个:)
标签: wpf xaml controltemplate resourcedictionary