如何在样式中设置子属性?
我想设置一个InkPresenter DefaultDrawingAttribute.Color属性。
这不起作用:
<Style x:Key="InkCanvasStyle" TargetType="{x:Type InkCanvas}">
<Setter Property="Background" Value="{Binding Source={x:Static Application.Current}, Path=BackColour}" />
<Setter Property="DefaultDrawingAttributes.Color" Value="White" />
<Setter Property="Cursor" Value="Pen" />
</Style>
修改
结束相当简单:
<Setter Property="DefaultDrawingAttributes">
<Setter.Value>
<DrawingAttributes Color="White" />
</Setter.Value>
</Setter>
答案 0 :(得分:2)
您是否尝试过使用property-element语法?
<Style x:Key="InkCanvasStyle" TargetType="{x:Type InkCanvas}">
<Setter Property="Background" Value="{Binding Source={x:Static Application.Current}, Path=BackColour}" />
<Setter Property="DefaultDrawingAttributes">
<Setter.Value>
<DrawingAttributes Color="White" />
</Setter.Value>
</Setter>
<Setter Property="Cursor" Value="Pen" />
</Style>
这不仅仅是设置颜色属性,而是创建一个新的DrawingAttributes
对象,然后设置Color
属性。
答案 1 :(得分:0)
即使my question没有涵盖这一点,肯定也有一个问题也涵盖了这个案例。由于这是一个属性集合,您可能不会遇到创建整个对象的麻烦(正如我在评论中所述):
<Setter Property="DefaultDrawingAttributes">
<Setter.Value>
<DrawingAttributes Color="White"/>
<Setter.Value>
</Setter>
另外,您可以随时使用Loaded
EventSetter
修改对象(正如我在评论中所述)。