我想创建一个Style
作为窗口资源,该样式需要绑定到指定控件中的属性。以下是它的简化示例。
为按钮创建样式并使用指定的按钮控制标记属性应用Background
颜色。
<Window.Resources>
<Style x:Key="TestingStyle" TargetType="Button">
<Setter Property="Background" Value="{Binding Tag}" />
</Style>
</Window.Resources>
当我在其Button
中添加Color
Tag
时,此样式应将该颜色应用于Button
的背景。这可能吗?
修改
以下是实际的XMAL代码。
<Style x:Key="SeriesStyle" TargetType="Chart:ChartSeries">
<Setter Property="StrokeThickness" Value="2"/>
<Setter Property="PointMarkerTemplate">
<Setter.Value>
<ControlTemplate>
<Ellipse Width="7" Height="7" Fill="Lavender" Stroke="{Binding RelativeSource={RelativeSource Self}, Path=SeriesColor}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
答案 0 :(得分:2)
是的,可以这样做但是你必须绑定到RelativeSource,以及可能必须创建一个将对象转换为颜色的转换器,这是因为Tag存储的对象不是Color, 下面是添加相对来源的示例。
<Setter Property="Background" Value="{Binding Path=Tag, RelativeSource={RelativeSource Self}}}" />
编辑:
假设Series Color是ChartSeries上的Property,请使用:
{Binding Path=SeriesColor, RelativeSource={RelativeSource AncestorType={x:Type Chart:ChartSeries}}}
答案 1 :(得分:1)
尝试这个:
<Setter Property="Background" Value="{Binding RelativeSource={RelativeSource Self}, Path=Tag}" />