Я создаю стиль для подсказок WPF. Всплывающие подсказки представляют собой текстовое поле со стрелкой, указывающей на элемент управления, владеющий всплывающей подсказкой. Стрелка должна быть либо слева, либо справа от текстового поля, в зависимости от того, является ли ToolTip.Placement правильным или левым.Datatrigger Связывание с объектом TargetType стиля в ControlTemplate и ContentPresenter
Для этого я создаю стрелку «Вправо» и «Влево» и пытаюсь использовать datatrigger для привязки к свойству Placement, чтобы я мог установить видимость стрелки.
Прямо сейчас, обе стрелки всегда отображаются. Я думаю, что мои datatriggers не настроены для привязки к свойству Placement ToolTip, но я не знаю, что случилось.
<Style TargetType="ToolTip">
<Setter Property="Placement" Value="Right" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<ContentPresenter>
<ContentPresenter.Content>
<StackPanel Orientation="Horizontal" >
<Path x:Name="LeftArrow" Fill="DarkOrange" Data="M 0 0 L 12 9 L 12 -9 Z" VerticalAlignment="Center" Stretch="Uniform">
<Path.Style>
<Style TargetType="Path">
<Style.Triggers>
<DataTrigger Binding="{Binding Placement}" Value="Right">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
<TextBox Background="DarkOrange" Height="50" Width="50" />
<Path x:Name="RightArrow" Fill="DarkOrange" Data="M 0 0 L -12 -9 L -12 9 Z" VerticalAlignment="Center" Stretch="Uniform">
<Path.Style>
<Style TargetType="Path">
<Style.Triggers>
<DataTrigger Binding="{Binding Placement}" Value="Right">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
</StackPanel>
</ContentPresenter.Content>
</ContentPresenter>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Отлично, спасибо. – GreenRibbon