fix(MyScrollViewer): 滚动鼠标致使显示的ToolTip永远不可见

This commit is contained in:
Open-KFC
2025-05-24 20:00:52 +08:00
parent bf6fa718c8
commit 2a15bcf2c6
3 changed files with 11 additions and 8 deletions
+6 -2
View File
@@ -137,10 +137,12 @@
<!-- ToolTip -->
<Style TargetType="ToolTip">
<EventSetter Event="Opened" Handler="OnTooltipOpened" />
<EventSetter Event="Closed" Handler="OnTooltipClosed" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Loaded="TooltipLoaded" Unloaded="TooltipUnloaded" BorderBrush="{DynamicResource ColorBrush1}" BorderThickness="1.5" CornerRadius="4" MaxWidth="500" Background="#E5FFFFFF" Margin="0,0,4,4" SnapsToDevicePixels="True">
<Border BorderBrush="{DynamicResource ColorBrush1}" BorderThickness="1.5" CornerRadius="4" MaxWidth="500" Background="#E5FFFFFF" Margin="0,0,4,4" SnapsToDevicePixels="True">
<Border.Effect>
<DropShadowEffect Opacity="0.3" BlurRadius="4" ShadowDepth="2" Color="{DynamicResource ColorObject1}" />
</Border.Effect>
@@ -151,10 +153,12 @@
</Setter>
</Style>
<Style x:Key="ExtendTextToolTip" TargetType="ToolTip">
<EventSetter Event="Opened" Handler="OnTooltipOpened" />
<EventSetter Event="Closed" Handler="OnTooltipClosed" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Loaded="TooltipLoaded" Unloaded="TooltipUnloaded" BorderBrush="{DynamicResource ColorBrush1}" BorderThickness="1" CornerRadius="3" Background="White" Margin="0,0,4,4" SnapsToDevicePixels="True">
<Border BorderBrush="{DynamicResource ColorBrush1}" BorderThickness="1" CornerRadius="3" Background="White" Margin="0,0,4,4" SnapsToDevicePixels="True">
<TextBlock Text="{TemplateBinding ContentControl.Content}" TextWrapping="Wrap" Foreground="{DynamicResource ColorBrush1}" Margin="7,5" FontSize="12"/>
</Border>
</ControlTemplate>
+3 -3
View File
@@ -287,11 +287,11 @@ WaitRetry:
End Select
End Sub
Public Shared ShowingTooltips As New List(Of Border)
Private Sub TooltipLoaded(sender As Border, e As EventArgs)
Public Shared ShowingTooltips As New List(Of ToolTip)
Private Sub OnTooltipOpened(sender As ToolTip, e As RoutedEventArgs)
ShowingTooltips.Add(sender)
End Sub
Private Sub TooltipUnloaded(sender As Border, e As RoutedEventArgs)
Private Sub OnTooltipClosed(sender As ToolTip, e As RoutedEventArgs)
ShowingTooltips.Remove(sender)
End Sub
@@ -19,9 +19,8 @@
e.Handled = True
PerformVerticalOffsetDelta(-e.Delta)
'关闭 Tooltip (#2552)
For Each TooltipBorder In Application.ShowingTooltips
AniStart(AaOpacity(TooltipBorder, -1, 100), $"Hide Tooltip {GetUuid()}")
Next
'通过 IsOpen 关闭 Tooltip 而不是降低 Border 不透明度 (#5744)
Application.ShowingTooltips.ForEach(Sub(tooltip) tooltip.IsOpen = False)
End Sub
Public Sub PerformVerticalOffsetDelta(Delta As Double)
AniStart(