|
|
@ -28,12 +28,14 @@ namespace Avalonia.Controls |
|
|
{ |
|
|
{ |
|
|
control.PointerEnter -= ControlPointerEnter; |
|
|
control.PointerEnter -= ControlPointerEnter; |
|
|
control.PointerLeave -= ControlPointerLeave; |
|
|
control.PointerLeave -= ControlPointerLeave; |
|
|
|
|
|
control.PropertyChanged -= Control_PropertyChanged; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (e.NewValue != null) |
|
|
if (e.NewValue != null) |
|
|
{ |
|
|
{ |
|
|
control.PointerEnter += ControlPointerEnter; |
|
|
control.PointerEnter += ControlPointerEnter; |
|
|
control.PointerLeave += ControlPointerLeave; |
|
|
control.PointerLeave += ControlPointerLeave; |
|
|
|
|
|
control.PropertyChanged += Control_PropertyChanged; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (ToolTip.GetIsOpen(control) && e.NewValue != e.OldValue && !(e.NewValue is ToolTip)) |
|
|
if (ToolTip.GetIsOpen(control) && e.NewValue != e.OldValue && !(e.NewValue is ToolTip)) |
|
|
@ -97,6 +99,17 @@ namespace Avalonia.Controls |
|
|
Close(control); |
|
|
Close(control); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void Control_PropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) |
|
|
|
|
|
{ |
|
|
|
|
|
var control = (Control)sender; |
|
|
|
|
|
|
|
|
|
|
|
if (e.Property == Visual.TransformedBoundsProperty) |
|
|
|
|
|
{ |
|
|
|
|
|
var toolTip = control.GetValue(ToolTip.ToolTipProperty); |
|
|
|
|
|
toolTip?.RecalculatePosition(control); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void StartShowTimer(int showDelay, Control control) |
|
|
private void StartShowTimer(int showDelay, Control control) |
|
|
{ |
|
|
{ |
|
|
_timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(showDelay) }; |
|
|
_timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(showDelay) }; |
|
|
|