Проблема установки определенного члена CornerRadius в установщике стилей - PullRequest
0 голосов
/ 30 августа 2011

В разделе «Ресурсы» ControlTemplate я пытаюсь использовать установщик в DataTrigger для изменения отдельных угловых радиусов на границе:

<Style x:Key="SectionBorder" TargetType="{x:Type Border}" >
    <Setter Property="CornerRadius" Value="5" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding HasChildSection, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
            <Setter Property="(Border.CornerRadius).(CornerRadius.BottomLeft)" Value="0" />
            <Setter Property="(Border.CornerRadius).(CornerRadius.BottomRight)" Value="0" />                                    
        </DataTrigger>
    </Style.Triggers>
</Style>

Это приводит к ошибке компилятора:

"Не удается разрешить свойство стиля "BottomLeft)". Убедитесь, что типом-владельцем является тип TargetType стиля, или используйте синтаксис Class.Property для указания свойства. "

Смущает ли WPF и имя, и тип свойстваназвание?Или я неправильно использую синтаксис Class.Property?Если я просто использую «CornerRadius.BottomLeft» для свойства, я получаю исключение XamlParseException во время выполнения, заявляя, что свойство не может быть установлено равным нулю.

1 Ответ

1 голос
/ 30 августа 2011

Это не так, как работают сеттеры, вы не можете установить свойства свойств , вы можете заменить только целое CornerRadius новым.

Property ожидает одно свойство, а не путь свойства.

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