我面临着自定义 WPF 工具提示的挑战。我们有要求,当用户将鼠标从元素或工具提示上移开时,工具提示将消失。但是,如果鼠标悬停在元素或工具提示上方,则用户将看到工具提示。任何人都可以帮助我实现这个要求。请参阅以下示例代码
我已经尝试过了。
<Button x:Name="MinimizeButton" Style="{StaticResource MinimizeButtonStyle}" WindowChrome.IsHitTestVisibleInChrome="True"
Command="{x:Static SystemCommands.MinimizeWindowCommand}" MouseEnter="bttnTarget_MouseEnter" MouseLeave="bttnTarget_MouseLeave">
<!--<Button.ToolTip>
<ToolTip >
<TextBlock Text="{x:Static lang:Resources.Tooltip_Minimize}"></TextBlock>
</ToolTip>
</Button.ToolTip>-->
</Button>
<Popup MouseLeave="Popup_MouseLeave" PopupAnimation="Fade" Placement="Top" PlacementTarget="{Binding ElementName=MinimizeButton}" AllowsTransparency="True" StaysOpen="True" x:Name="minimizeTooltip">
<Border Background="White" Padding="5" BorderBrush="Black" BorderThickness="1">
<Grid>
<StackPanel>
<TextBlock Margin="5" Text="{x:Static lang:Resources.Tooltip_Minimize}"></TextBlock>
</StackPanel>
</Grid>
</Border>
</Popup>
private void bttnTarget_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
if (!minimizeTooltip.IsMouseOver)
minimizeTooltip.IsOpen = false;
}
private void Popup_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
if (!MinimizeButton.IsMouseOver)
minimizeTooltip.IsOpen = false;
}
private void bttnTarget_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
minimizeTooltip.IsOpen = true;
}