<Window x:Class="WPFPopup.RuntimePopup"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="RuntimePopup" Height="800" Width="800" Loaded="Window_Loaded">
    <StackPanel>
        <Button Height="300">T</Button>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <CheckBox Name="PCheckBox" Width="100" Margin="60,10,0,0"
              Content="Popup Window"/>
            <CheckBox Name="PCheckBox2" Grid.Column="1" Width="100" Margin="0,10,0,0"
              Content="Popup Window"/>
        </Grid>
        
        <Button HorizontalAlignment="Left" Width="169" Margin="10,10,0,0">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation
                Storyboard.TargetName="theTransform"
                Storyboard.TargetProperty="(RotateTransform.Angle)"
                From="0" To="360" Duration="0:0:5" AutoReverse="True"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
            Start Animation
        </Button>
        <Popup x:Name="popusBottom" IsOpen="{Binding ElementName=PCheckBox,Path=IsChecked}"
           PlacementTarget="{Binding ElementName=PCheckBox}"           
           AllowsTransparency="True"
           PopupAnimation="Fade"
           HorizontalOffset="5"
           VerticalOffset="-120" 
               
           >   
            <Canvas  Margin="150" Background="Green">
                <Canvas.RenderTransform>
                    <RotateTransform x:Name="theTransform" />
                </Canvas.RenderTransform>
                <WrapPanel >
                    <WrapPanel.Background>
                        <ImageBrush ImageSource="BG.png"/>
                    </WrapPanel.Background>
                     <Button Click="Button_Click" Margin="15">Test</Button>
                    <ListBox Height="90" Margin="15">
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                    </ListBox>
                </WrapPanel>
                
            </Canvas>
        </Popup>
        <Popup x:Name="popusBottom2" IsOpen="{Binding ElementName=PCheckBox2,Path=IsChecked}"
           PlacementTarget="{Binding ElementName=PCheckBox2}"           
           AllowsTransparency="True"
           PopupAnimation="Fade"
           HorizontalOffset="5"
           VerticalOffset="-120"                  
           >
            <Canvas Margin="150">
                <WrapPanel >
                    <WrapPanel.Background>
                        <ImageBrush   ImageSource="BG.png"/>
                    </WrapPanel.Background>
                    <Button Click="Button_Click" Margin="15">Test</Button>
                    <ListBox Height="90" Margin="15">
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                        <ListBoxItem>Item1</ListBoxItem>
                        <ListBoxItem>Item2</ListBoxItem>
                        <ListBoxItem>Item3</ListBoxItem>
                    </ListBox>
                </WrapPanel>
 
            </Canvas>
        </Popup>
    </StackPanel>
 
</Window>

  

C# code

public partial class RuntimePopup : Window
   {
       public RuntimePopup()
       {
           InitializeComponent();
           LocationChanged += new EventHandler(RuntimePopup_LocationChanged);
       }
 
       void RuntimePopup_LocationChanged(object sender, EventArgs e)
       {
           var mi = typeof(Popup).GetMethod("UpdatePosition", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
           mi.Invoke(popusBottom, null);//控制popup随window移动而移动
       }
 
       private void Button_Click(object sender, RoutedEventArgs e)
       {
           MessageBox.Show("Test");
       }
   }

WPF popup控件的使用的更多相关文章

  1. WPF Popup 控件导致被遮挡内容不刷新的原因

    WPF Popup 控件导致被遮挡内容不刷新的原因 周银辉 今天在写一个WPF控件时用到了Popup控件,很郁闷的情况是:当popup关闭时,原来被popup挡住的界面部分不刷新,非要手动刷新一下(比 ...

  2. 自定义WPF Popup控件

    解决问题 1.WPF Popup 不随着 Window 一起移动的问题 2.WPF Popup 总是显示在最前面 引用命名空间 xmlns:ctrl="clr-namespace:Micro ...

  3. 解决wpf popup控件遮挡其他程序的问题

    public class PopupNonTopmost : Popup { public static DependencyProperty TopmostProperty = Window.Top ...

  4. wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug

    目录区域: 业余开发的wpf 客户端终于完工了..晒晒截图 wpf 客户端[JDAgent桌面助手]开发详解-开篇 wpf 客户端[JDAgent桌面助手]详解(一)主窗口 圆形菜单... wpf 客 ...

  5. 关于WPF中Popup控件的小记

    在wpf开发中,常需要在鼠标位置处弹出一个“提示框”(在此就以“提示框”代替吧),通过“提示框”进行信息提示或者数据操作,如果仅仅是提示作用,使用ToolTip控件已经足够,但是有些是需要在弹出的框中 ...

  6. WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书

    原文:WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书 最近项目中使用弹出控件Popup,发现弹出框的对齐方式在不同的系统中存在不同(Popup在win10上是 ...

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

    需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作. 效果如下图: 当鼠标移入左上角的[多选显示]框内,出现下面的浮窗(悬浮在原UI之上).当在浮窗外点击鼠标左键时,隐藏该浮窗. 由于该 ...

  8. WPF中Popup控件的使用

    一.Popup控件的主要属性 Popup表示具有内容的弹出窗口,其主要属性为: Child:获取或设置 Popup控件的内容. IsOpen:获取或设置一个值,该值指示Popup 是否可见 Place ...

  9. 迟到的 WPF 学习 —— 控件

    这一章书中内容比较多而杂,但每个对象的内容又相对简短,所以只挑选里边有代表性的内容做记录. 1. Label 控件:一个基础的简单的 ContentControl,Labe 支持快捷键文本的设置,可以 ...

随机推荐

  1. OpenJudge 东方14ACM小组 / 20170123 06:Challenge 3

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求 ...

  2. poj 1410 Intersection 线段相交

    题目链接 题意 判断线段和矩形是否有交点(矩形的范围是四条边及内部). 思路 判断线段和矩形的四条边有无交点 && 线段是否在矩形内. 注意第二个条件. Code #include & ...

  3. WebRTC VoiceEngine综合应用示例(二)——音频通话的基本流程(转)

    下面将以实现一个音频通话功能为示例详细介绍VoiceEngine的使用,在文末将附上相应源码的下载地址.这里参考的是voiceengine\voe_cmd_test. 第一步是创建VoiceEngin ...

  4. Django ConnectionAbortedError WinError 10053 错误

    因为ajax默认是异步提交,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出问题了. (1)添加这样一段代码 $.ajaxSetup({ async : false ...

  5. php转换字符编码为utf-8

    php转换字符编码为utf-8 function strToUtf8($str){ $encode = mb_detect_encoding($str, array("ASCII" ...

  6. iOS键盘中英文切换键盘高度获取通知方法

    iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppea ...

  7. dedecms--二次开发之会员帐号过期无法登录

    最近在二次开发织梦系统的会员功能:要求会员帐号有期限,开始时间以会员添加时间为开始,这样登录的时候需要判断帐号是否过期,原本的织梦系统中是通过$rs = $cfg_ml->CheckUser($ ...

  8. 关于Redux到底是个什么鬼

    原文链接:https://zhuanlan.zhihu.com/p/20641377 我们故事的主人公,小明. 小明大学刚毕业,摆脱了宿舍的集体生活,自己在外面租了个一室一厅的小公寓住. 这是客厅的平 ...

  9. Lucene.net站内搜索-最简单搜索引擎代码

    Lucene.Net核心类简介 先运行写好的索引的代码,再向下讲解各个类的作用,不用背代码. (*)Directory表示索引文件(Lucene.net用来保存用户扔过来的数据的地方)保存的地方,是抽 ...

  10. Spring Cloud系列文,Feign整合Ribbon和Hysrix

    在本博客之前的Spring Cloud系列里,我们讲述了Feign的基本用法,这里我们将讲述下Feign整合Ribbon实现负载均衡以及整合Hystrix实现断路保护效果的方式. 1 准备Eureka ...