WPF中的Popup控件

转载 2013年12月03日 11:10:16

Popup控件在许多方面和ToolTip 控件一样,尽管它们之间没有继承的关系。和ToolTip一样Popup控件也只能包含单一内容,但是它可以包含任何WPF元素,该内容存储在Popup.Child属性中,而不像ToolTip控件存储在ToolTip.Content属性中。另外,和ToolTip控件一件Popup控件也可以延伸出窗口的边界,最后,可以使用相同的布局属性放置Popup控件,并使用相同的IsOpen属性显示或隐藏Popup控件。

Popup控件和ToolTip控件之间的区别非常重要,这些区别包括:

1.Popup控件永远不会自动显示,为了显示Popup控件必须设置IsOpen属性。

2.默认情况下,Popup.StaysOen属性被设置为True,并且Popup控件会一直显示,直到显式地将IsOpen属性设置为False。如果将Popup.StaysOpen属性设置为False,当用户在其他地方单击鼠标时,Popup控件就会消失。

如果Popup控件的IsOpen属性设置为True时,通过Popup控件的PopupAnimation属性可以设置Popup控件的显示方式。

由于Popup控件不和任何控件相关联,所以无论在哪定义Popup标签都无所谓。

XAML示例代码如下。

<Window x:Class="WpfApplication2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <StackPanel>
        <Button Click="Button_Click">
            Button
        </Button>
        <Popup Name="P" AllowsTransparency="True" 
               PopupAnimation="Fade" Placement="Mouse"><!--定义Popup设置其弹出方式和弹出位置并设置其允许透明-->
            <Border Background="Transparent"><!--定义边框-->
                <StackPanel>
                    <Button>1111111</Button>
                    <Image Source="./Resource/c.png"></Image>
                    <Button Click="Button_Click_1">2222222</Button>
                </StackPanel>
            </Border>
        </Popup>
    </StackPanel>
</Window>

CS示例代码如下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;

namespace WpfApplication2
{
    /// <summary>
    /// Window1.xaml 的交互逻辑
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            P.IsOpen = true;
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            ((Popup)(((Border)(((StackPanel)(((Button)sender).Parent)).Parent)).Parent)).IsOpen = false;
            e.Handled = true;
        }
    }
}

WPF 控件之 Popup

1.常用属性说明 IsOpen: 布尔值,指示 Popup 控件是否显示 StaysOpen: 布尔值,指示在 Popup 控件失去焦点的时候,是否关闭 Popup 控件的显示 PopupAni...

WPF自定义Popup和弹出菜单

Popup:
  • Qian_F
  • Qian_F
  • 2014年06月14日 21:05
  • 26125

在WPF页面中用Popup模拟模态对话框

    在WPF的页面中我们肯定会遇到这样的需求:弹出一个对话框让用户进行一些选择和输入,当用户在该对话框上的操作结束并关闭对话框后再返回到主页面进行其他操作。这其实就是一个很典型的模态对话框的应用。...
  • starlee
  • starlee
  • 2009年03月17日 09:50
  • 19008

WPF Popup 置顶问题

问题:使用wpf的popup,当在popup中弹出MessageBox或者打开对话框的时候,popup总是置顶,并遮住MessageBox或对话框.解决:写如下用户控件 需导入的空间: using S...

WPF Popup的使用

使用Popup控件实现自定义右键菜单, 菜单分为左右两列,左边列为一个图标,右边列为文字的形式。 xmal代码为:                                  ...

wpf Popup使用

wpf中如果嵌入了WebBrower浏览器,对于那些想在浏览器上面显示内容的民工来说是难求一招, 今我特赐一法,百试百灵。。。 popup,在程序中新建一popup,然后就是添加你想展示的子控件。...

WPF Popup实现拖动

最近发现popup设置打开后,总是会遮挡其他窗口,而我们只想让它仅仅在应用程序的上一层即可,并不像让它在最上面 解决方案是继承Popup重新定义控件PopupEx。 public class Pop...

【WPF】使用Popup控件做浮窗/提示框

需求:当鼠标移入某个区域时,弹出一个浮窗。

WPF ComboBox样式

ComboBox样式:

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF中的Popup控件
举报原因:
原因补充:

(最多只允许输入30个字)