Files
ShrlAlgoToolkit/AntDesignWPF/Controls/ToolTip.xaml
2025-07-31 20:12:24 +08:00

89 lines
6.5 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="clr-namespace:AntDesignWPF.Helpers">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/AntDesignWPF;component/Controls/Control.xaml" />
<!--<ResourceDictionary Source="pack://application:,,,/AntDesignWPF;component/Themes/Light.xaml" />-->
</ResourceDictionary.MergedDictionaries>
<Style BasedOn="{StaticResource Ant.Control}" TargetType="{x:Type ToolTip}">
<Setter Property="Background" Value="{DynamicResource AntDesign.Brush.TextPrimary}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Foreground" Value="{DynamicResource AntDesign.Brush.TextOnPrimary}" />
<Setter Property="helpers:AntControl.CornerRadius" Value="{DynamicResource BorderRadiusBase}" />
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="Padding" Value="8 6" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<DockPanel>
<!--Inner-->
<Border x:Name="Inner"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{Binding Path=(helpers:AntControl.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}"
DockPanel.Dock="Top"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" />
</Border>
<!--Arrow-->
<Path x:Name="Arrow"
Width="{Binding Height,
Mode=OneWay,
RelativeSource={RelativeSource Self},
Converter={StaticResource DultiplicationConverter},
ConverterParameter=2.166}"
Height="{DynamicResource ToolTipArrowSize}"
HorizontalAlignment="Center"
Data="M0,0 L6,5.5 12.5,0z"
DockPanel.Dock="Bottom"
Fill="{TemplateBinding Background}"
Stretch="Uniform" />
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="Placement" Value="Left">
<Setter TargetName="Arrow" Property="Data" Value="M0,0 L6,6,0,13z" />
<Setter TargetName="Inner" Property="DockPanel.Dock" Value="Left" />
<Setter TargetName="Arrow" Property="DockPanel.Dock" Value="Right" />
<Setter TargetName="Arrow" Property="Height" Value="{Binding Width,
Mode=OneWay,
ElementName=Arrow,
ConverterParameter=2.2,
Converter={StaticResource DultiplicationConverter}}" />
<Setter TargetName="Arrow" Property="VerticalAlignment" Value="Center" />
<Setter TargetName="Arrow" Property="Width" Value="{DynamicResource ToolTipArrowSize}" />
</Trigger>
<Trigger Property="Placement" Value="Right">
<Setter TargetName="Inner" Property="DockPanel.Dock" Value="Right" />
<Setter TargetName="Arrow" Property="DockPanel.Dock" Value="Left" />
<Setter TargetName="Arrow" Property="Height" Value="{Binding Width,
Mode=OneWay,
ElementName=Arrow,
ConverterParameter=2.2,
Converter={StaticResource DultiplicationConverter}}" />
<Setter TargetName="Arrow" Property="VerticalAlignment" Value="Center" />
<Setter TargetName="Arrow" Property="Width" Value="{DynamicResource ToolTipArrowSize}" />
</Trigger>
<Trigger Property="Placement" Value="Bottom">
<Setter TargetName="Arrow" Property="Data" Value="M0,6 L6,0 12,6z" />
<Setter TargetName="Inner" Property="DockPanel.Dock" Value="Bottom" />
<Setter TargetName="Arrow" Property="DockPanel.Dock" Value="Top" />
<Setter TargetName="Arrow" Property="HorizontalAlignment" Value="Center" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
</ResourceDictionary>