2013-10-09 4 views
0

Я создаю WPF UserControl и определил свойство зависимостей с именем «Ориентация» в нем. Это тип Dock, который позволяет мне устанавливать значения Top, Bottom, Left и Right. Пользователь UserControl также содержит элемент Border в своем XAML. В зависимости от значения свойства Orientation граница должна появляться с одной стороны. Вот мои спусковой я определил до сих пор:Реагировать на свойство управления в дочернем элементе

<Trigger Property="Orientation" Value="Bottom"> 
    <Setter Property="BorderThickness" Value="0,1,0,0"/> 
</Trigger> 
<Trigger Property="Orientation" Value="Top"> 
    <Setter Property="BorderThickness" Value="0,0,0,1"/> 
</Trigger> 
<Trigger Property="Orientation" Value="Left"> 
    <Setter Property="BorderThickness" Value="0,0,1,0"/> 
</Trigger> 
<Trigger Property="Orientation" Value="Right"> 
    <Setter Property="BorderThickness" Value="1,0,0,0"/> 
</Trigger> 

Я теперь пытался использовать эти триггера в стиле границы, но они не могут найти свойство Orientation. Затем я попытался использовать его в стиле UserControl, а TargetName установлен на мою границу, но TargetName не может быть установлен.

Как выглядит правильный код XAML для этого?

ответ

1

В вашем Border использования Стиль DataTrigger вместо Trigger например

<DataTrigger Binding="{Binding Orientation, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="Bottom"> 
    <Setter Property="BorderThickness" Value="0,1,0,0"/> 
</DataTrigger> 

так же обновить все триггеры

Смежные вопросы