在样式中设置子属性

时间:2011-12-07 01:24:52

标签: wpf styles

如何在样式中设置子属性?

我想设置一个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>

2 个答案:

答案 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修改对象(正如我在评论中所述)。