wpf-简单悬浮窗的定位问题

当前效果:移入textblock范围内时浮窗出现,移出时消失。
在这里插入图片描述
前台

	<Grid x:Name="mainGrid" ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        
        <Grid Grid.Row="0">
            <TextBlock Text="测试浮窗" 
                       MouseMove="TextBlock_MouseMove"
                       MouseLeave="TextBlock_MouseLeave"
                       Margin="10, 20, 10,10"
                       Width="50"/>
                       
            <Popup x:Name="popPath" AllowsTransparency="True">
                <Border BorderBrush="Transparent" BorderThickness="0" Background="Transparent">
                    <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
                        <Path Stroke="Black" StrokeThickness="1" Fill="White" Data="M 0,0 L 120,0 L 120,30 L 65,30 L 60,35 L 55,30 L 0,30 Z"/>
                        <Grid x:Name="grpopPath" Margin="5,5,5,10">
                            <TextBlock x:Name="tbPath" Foreground="Black" FontSize="13" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </Grid>
                    </Grid>
                </Border>
            </Popup>
            
        </Grid>
    </Grid>

后台

        private void TextBlock_MouseMove(object sender, MouseEventArgs e)
        {
            TextBlock t = (TextBlock)sender;
            tbPath.Text = t.Text;
			// 位置
            Point p = e.GetPosition(mainGrid);
            popPath.IsOpen = true;
            popPath.HorizontalOffset = p.X - 60;
            popPath.VerticalOffset = p.Y -100;
        }
        private void TextBlock_MouseLeave(object sender, MouseEventArgs e)
        {
            popPath.IsOpen = false;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值