Чтобы применить активированную анимацию ко всем ToolTip
в моем приложении, я использую ControlTemplate
. Однако при использовании ControlTemplate
ToolTip
теряет все свои визуальные свойства по умолчанию, как я полагаю, согласно теме. Как сохранить все свойства, кроме тех, которые я переопределяю?
Используя следующий код
<ToolTip Opacity="0.8">
<ToolTip.Content>
<StackPanel>
<Label FontWeight="Bold" Background="DarkSlateBlue" Foreground="White">
WpfApplication1
</Label>
<Label>
Click to create another button
</Label>
</StackPanel>
</ToolTip.Content>
</ToolTip>
Я получаю желаемый результат:
альтернативный текст http://img29.imageshack.us/img29/1488/controltemplateno.png
Но когда я настраиваю код для использования ControlTemplate
следующим образом:
<ControlTemplate x:Key="controltemplateToolTip" TargetType="{x:Type ToolTip}">
<ContentPresenter Content="{TemplateBinding Content}" />
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="ToolTip.Loaded">
<BeginStoryboard>
<Storyboard TargetProperty="Opacity">
<DoubleAnimation From="0" To="0.8" Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style TargetType="{x:Type ToolTip}">
<Setter Property="Template" Value="{StaticResource controltemplateToolTip}" />
</Style>
...
<ToolTip>
<ToolTip.Content>
<StackPanel>
<Label FontWeight="Bold" Background="DarkSlateBlue" Foreground="White">
WpfApplication1
</Label>
<Label>
Click to create another button
</Label>
</StackPanel>
</ToolTip.Content>
</ToolTip>
Я получаю следующее:
альтернативный текст http://img43.imageshack.us/img43/8217/controltemplateyes.png
Как видите, границы темы по умолчанию, фон и т. Д. Не поддерживаются. Я не хочу устанавливать их явно, так как я хочу, чтобы они настраивались в соответствии с темой пользователя. Как я могу исправить это? Я поступаю неправильно?