silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

本节是基于第四节的源码基础上进行扩展的源码,故本节源码附带有鼠标右键和全屏功能。         在本节,我们将讲述一个小技巧:使用Popup浮动窗体控件模拟Tip悬浮效果。此技巧的原理是当鼠标移动到某个控件上面的时候会触发MouseMove事件,此时设置Popup控件显示出来。触发此事件时能够获知此时的鼠标坐标位置,我们根据鼠标位置的变化的同时移动Popup控件的HorizontalOffset

本节是基于第四节的源码基础上进行扩展的源码,故本节源码附带有鼠标右键和全屏功能

@H_674_20@         在本节,我们将讲述一个小技巧:使用Popup浮动窗体控件模拟Tip悬浮效果。此技巧的原理是当鼠标移动到某个控件上面的时候会触发MouseMove事件,此时设置Popup控件显示出来。触发此事件时能够获知此时的鼠标坐标位置,我们根据鼠标位置的变化的同时移动Popup控件的HorizontalOffset属性获取或设置目标原点与弹出项对齐点之间的水平距离)和VerticalOffset(获取或设置目标原点与弹出项对齐点之间的垂直距离)。如果鼠标移出自定义控件,那么设置Popup浮动窗体的IsOpen属性false隐藏此浮动窗体。

@H_674_20@         创建一个自定义控件命名为TipWindow,其XAML代码如下:

Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】

@H_419_17@

Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】

   
   
< UserControl x:Class = " SLRightMouseButton.TipWindow "
xmlns
= http://scheR_241_11845@as.microsoft.com/winfx/2006/xaml/presentation "
xmlns:x
= http://scheR_241_11845@as.microsoft.com/winfx/2006/xaml "
xmlns:d
= http://scheR_241_11845@as.microsoft.com/expression/blend/2008 "
xmlns:mc
= http://scheR_241_11845@as.openxmlformats.org/markup-compatibility/2006 "
mc:Ignorable
= d "
d:DesignHeight
= 300 " d:DesignWidth = 400 " xmlns:sdk = http://scheR_241_11845@as.microsoft.com/winfx/2006/xaml/presentation/sdk " >

< Grid x:Name = LayoutRoot " BACkground = White " >
< Popup x:Name = tip " >
< Grid x:Name = toolTip " Width = 312 " Height = 200 " >
< Grid.BACkground >
< ImageBrush Imagesource = ./BG.png " ></ ImageBrush >
</ Grid.BACkground >
< Grid.RowDeFinitions >
< RowDeFinition Height = auto " />
< RowDeFinition />
</ Grid.RowDeFinitions >
< Grid.columnDeFinitions >
< columnDeFinition Width = " />
</ Grid.columnDeFinitions >
< TextBlock Grid.Row = 0 " Grid.column = " x:Name = @H_825_42@mainContent " Foreground = " FontSize = 14 Auto " HorizontalAlignment = Center " Margin = 0 20 0 0 " VerticalAlignment = Top " />
</ Grid >

</ Popup >
</ Grid >
</ UserControl >
@H_419_17@

Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】

@H_674_20@                 <Grid.BACkground>
                    <ImageBrush Imagesource="./BG.png"></ImageBrush>
                </Grid.BACkground>

@H_674_20@         这几句话设置整个Grid的背景图片为当前目录下的BG.png,所以我们也要在项目中引入该文件。再来看看TipWindow.cs的关键源代码如下:

@H_419_17@

Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】

  
  
public void BindControl(UIElement uC)
{
uc.MouSELEave
+= new MouseEventHandler(ti_MouSELEavE);
uc.MouseMove
+= new MouseEventHandler(ti_MouseMovE);

}
void CancelBindControl(UIElement uC)
{

uc.MouSELEave
-= new MouseEventHandler(ti_MouSELEavE);
uc.MouseMove
-= new MouseEventHandler(ti_MouseMovE);

}
/// <sumMary>
鼠标离开自定义控件时,隐藏提示
</sumMary> <param name="sender"></param> <param name="e"></param>
private void ti_MouSELEave( object sender,MouseEventArgs E)
{
this .tip.IsOpen = false ;
}
鼠标在自定义控件上移动式时,提示框也跟随移动
void ti_MouseMove( true ;
this .tip.HorizontalOffset = e.GetPosition( null ).X - 158 ;
this .tip.VerticalOffset = e.GetPosition( null ).Y - 202 ;

}
@H_419_17@

Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】

大佬总结

以上是大佬教程为你收集整理的Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】全部内容,希望文章能够帮你解决Silverlight实用窍门系列:13.基于Popup浮动窗体控件模拟ToolTip的实现【附带实例源码】所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。