Установка подчиненного свойства в стиле - PullRequest
1 голос
/ 07 декабря 2011

Как мне установить подчиненное свойство в стиле?

Я хочу установить свойство 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 ]

2 голосов
/ 07 декабря 2011

Вы пытались использовать синтаксис элемента свойства?

        <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.

0 голосов
/ 07 декабря 2011

Даже если мой вопрос не покрывает это, то, безусловно, есть вопрос, который охватывает и этот случай. Поскольку это коллекция атрибутов, вы, вероятно, не столкнетесь с проблемами при создании всего объекта (как я отметил в комментарии):

<Setter Property="DefaultDrawingAttributes">
    <Setter.Value>
        <DrawingAttributes Color="White"/>
    <Setter.Value>
</Setter>

Альтернативно, вы всегда можете изменить объект после него Loaded, используя EventSetter (как я отметил в комментарии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...