Просмотр исходного кода

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

Open-KFC 1 год назад
Родитель
Сommit
2a15bcf2c6

+ 6 - 2
Plain Craft Launcher 2/Application.xaml

@@ -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
Plain Craft Launcher 2/Application.xaml.vb

@@ -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
 

+ 2 - 3
Plain Craft Launcher 2/Controls/MyScrollViewer.vb

@@ -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(