需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。
<Border BorderBrush="Black" Width="60" Height="40" Margin="5" BorderThickness="1" Background="Yellow" MouseEnter="border_MouseEnter" >
<Grid>
<TextBlock Text="多项选择" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Popup Name="pop1" StaysOpen="False">
<TextBox Background="Green" Height="98" Width="233">对方考虑购买能打开了国内的</TextBox>
</Popup>
</Grid>
</Border>
后台:
private void border_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
pop1.IsOpen = false;
pop1.IsOpen = true;
}
说明:为何要先IsOpen = false再IsOpen = false,
“在其他地方点击之后,pop1并不是自动关闭了,而是跑到其他控件后面去了 所以你再让它打开,它其实已经是打开的,而且已经在后面,所以看不到了. 你先让它关闭,再打开,就又跑到前面来了.”
1.常用属性说明
IsOpen: 布尔值,指示 Popup 控件是否显示
StaysOpen: 布尔值,指示在 Popup 控件失去焦点的时候,是否关闭 Popup 控件的显示
PopupAnimation:指示显示窗口时是否使用动画,只有在 AllowsTransparency 等于true时此属性才有用
Popup 窗口本身是一个不可见的元素,只有在窗口上放置了信息后才能显示
Popup的定位方式与一般控件的定位方法不一样, Popup 使用五个属性来设定位置信息:
PlacementTarget:设定 Popup 定义所相对的控件,
如果没有为属性为 NULL,则 Popup 定位相对于屏幕的左上角
Placement:一个枚举值,指定 Popup 控件的定位方式
PlacementRectangle:设定一个矩形,在 Popup 控件显示时,位置将相对于此矩形来显示,此矩形的位置也相对于PlacementTarget 属性所设定的控件
HorizontalOffset:指定一个值,指示 Popup 的位置所需水平移动多少个象素
VerticalOffset:指定一个值,指示 Popup 的位置所需垂直移动多少个象素
转载于:https://www.jianshu.com/p/2a45e92f4cad