gpt4 book ai didi

c# - 工具提示或类似的东西在 WPF 中随光标移动

转载 作者:太空狗 更新时间:2023-10-29 18:15:19 25 4
gpt4 key购买 nike

当鼠标移到特定控件上时,是否可以使用光标移动 Tooltip 或类似的东西?

我尝试了 TextBlock,但是 Margin 属性不起作用。

    private TextBlock tooltip = new TextBlock();
private void imgRoom_MouseEnter(object sender, MouseEventArgs e)
{
Point position = e.GetPosition((IInputElement)sender);
tooltip.Visibility = System.Windows.Visibility.Visible;
tooltip.Margin = new Thickness(position.X, position.Y, 0, 0);
tooltip.Width = 100;
tooltip.Height = 100;
tooltip.Background = new SolidColorBrush(Colors.Red);
}

private void imgRoom_MouseMove(object sender, MouseEventArgs e)
{
Point position = e.GetPosition((IInputElement)sender);
tooltip.Margin = new Thickness(position.X, position.Y, 0, 0);
}

最佳答案

您可以使用 Popup 及其上的一些简单属性来实现效果。从窗口代码...

<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Rectangle Name="rect" Margin="50,50,0,0" Width="100" Height="100" Fill="LightBlue" MouseMove="Rectangle_MouseMove" MouseLeave="Rectangle_MouseLeave" />

<Popup Name="floatingTip" AllowsTransparency="True" Placement="Relative" PlacementTarget="{Binding ElementName=rect}">
<TextBlock>Look At Me</TextBlock>
</Popup>
</Grid>

</Window>

这就是代码隐藏的样子。

...
private void Rectangle_MouseMove(object sender, MouseEventArgs e)
{
if (!floatingTip.IsOpen) { floatingTip.IsOpen = true; }

Point currentPos = e.GetPosition(rect);

// The + 20 part is so your mouse pointer doesn't overlap.
floatingTip.HorizontalOffset = currentPos.X + 20;
floatingTip.VerticalOffset = currentPos.Y;
}

private void Rectangle_MouseLeave(object sender, MouseEventArgs e)
{
floatingTip.IsOpen = false;
}
...

因此,从 XAML 中,您可以看到弹出窗口的位置是相对于矩形的。当您将鼠标悬停在矩形上时,它会变得可见,并且它的位置会随着鼠标移动而更新。当然,这是一个非常基本的解决方案,但通过一些小的调整、处理“MouseEnter”和属性调整等事件,您可以得到一些非常简洁的效果。

关于c# - 工具提示或类似的东西在 WPF 中随光标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com