`
lindexi-gd
  • 浏览: 140113 次
社区版块
存档分类
最新评论

WPF popup置顶

 
阅读更多

在程序写一个popup发现他会在置顶,在网上找了两大神代码http://www.cnblogs.com/Leaco/p/3164394.html

http://blog.csdn.net/baijinwen/article/details/6159043

继承 Popup

public class CCPopup : Popup
    {
        public static DependencyProperty TopmostProperty = Window.TopmostProperty.AddOwner(typeof(CCPopup), new FrameworkPropertyMetadata(false, OnTopmostChanged));
        public bool Topmost
        {
            get { return (bool)GetValue(TopmostProperty); }
            set { SetValue(TopmostProperty, value); }
        }
        private static void OnTopmostChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
        {
            (obj as CCPopup).UpdateWindow();
        }
        protected override void OnOpened(EventArgs e)
        {
            UpdateWindow();
        }
        private void UpdateWindow()
        {
            var hwnd = ((HwndSource)PresentationSource.FromVisual(this.Child)).Handle;
            RECT rect;
            if (GetWindowRect(hwnd, out rect))
            {
                SetWindowPos(hwnd, Topmost ? -1 : -2, rect.Left, rect.Top, (int)this.Width, (int)this.Height, 0);
            }
        }
        #region P/Invoke imports & definitions
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
        [DllImport("user32", EntryPoint = "SetWindowPos")]
        private static extern int SetWindowPos(IntPtr hWnd, int hwndInsertAfter, int x, int y, int cx, int cy, int wFlags);
        #endregion
    }
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    WPF:带阴影、带箭头的Popup提示框

    在Windows Presentation Foundation (WPF) 中,Popup是一个非常实用的控件,用于创建浮动的、非模态的用户界面元素,它可以显示在主窗口或其他UI元素之上。在本项目"PopupSamples.7z"中,我们可以期待看到一系列的...

    wpf动态显示popup,定时关闭

    动态显示popup,定时关闭

    WPF实用的popup例子

    在开发的WPF程序中使用popup的过程中会遇到一个问题,按下windows+d键回到桌面,主程序界面消失了,但是popup弹窗还是停留在桌面,或者会遇到另一种情况,在主程序界面打开了popup弹窗,回到桌面后再点击主程序,回到主...

    wpf.rar_WPF_WPF Popup_wpf csharp_界面设计

    通过这些资源,你可以深入学习WPF的各个方面,包括Popup控件的用法,以及其他WPF控件、布局管理、数据绑定等内容,进一步提升你的WPF开发技能。 总之,WPF作为强大的用户界面框架,结合C#语言,为企业级桌面应用...

    Windows窗体置顶 C#/wpf编程

    在项目开发中,希望窗体一直处于置顶状态,使用该Demo可方便实现这个功能。

    WPF adorner popup control

    `Popup`控件在WPF中常用于创建浮动、可定位的子窗口,但adorner提供了一种更具灵活性的方式来实现类似效果。 adorner是WPF中的一个高级概念,主要用于UI元素的装饰和扩展,它们通常与布局系统独立,并可以叠加在...

    WPF 右下角消息(悬浮)弹窗

    PopupWindow在这里可能是指一种自定义的窗口类,它继承自WPF的Popup控件,用于实现悬浮效果。 在压缩包文件 "PopUPDemo1" 中,很可能包含了实现这一功能的示例代码,包括XAML文件(用于定义UI布局)和C#后台代码...

    WPF动画 窗体跳转过渡动画 包含大量窗体动画

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的动画和窗体转换技术,这些都是基于.NET Framework的UI设计框架的重要组成部分。WPF提供了一种强大的机制,允许开发者创建丰富的、交互式的用户...

    WPF 解决popup顶置以及跟随窗体移动的问题(自定义控件,并且可解决wpf与winform控件相互嵌套的问题)-附件资源

    WPF 解决popup顶置以及跟随窗体移动的问题(自定义控件,并且可解决wpf与winform控件相互嵌套的问题)-附件资源

    WPF 弹出窗体 自动关闭

    WPF 弹出窗体 自动关闭 可调整关闭时间 及窗体显示文本内容

    WPF 窗体样式重写 界面优美

    在Windows Presentation Foundation(WPF)中,窗体样式重写是一项关键技能,它允许开发者根据自己的设计需求定制用户界面,创造出美观、独特的交互体验。本文将深入探讨如何通过重写WPF窗体样式来实现界面的美化。 ...

    WPF中WindowFormsHost始终置顶的有效解决方案.docx

    ### WPF中WindowFormsHost始终置顶的有效解决方案 #### 背景介绍 WPF(Windows Presentation Foundation)作为微软推出的一种UI框架,以其强大的功能和灵活性受到开发者的青睐。但在实际应用过程中,开发者经常会...

    wpf使用Popup封装数据筛选框,wpf使用Popup封装数据筛选框【可联系作者购买】

    wpf使用Popup封装数据筛选框。 1.付费下载后,博主保证能运行成功,不成功可以联系博主。 2.也可以私下单独联系博主进行付费下载。

    WPF 已知问题 Popup 吃掉 PreviewMouseDown 事件.rar

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中一个特定的问题,即Popup控件如何“吃掉”PreviewMouseDown事件。这个问题对于那些在使用WPF进行GUI开发的程序员来说,是一个常见但可能困扰的...

    wpf的ColorPicker颜色选择器,源码和实例

    wpf的ColorPicker颜色选择器,源码和实例. 网上很多的都是combox封装一个选择颜色,或者调用winform的颜色选择器,有第三方dll,但是编译有问题,因为我用的项目是anycup.用着很费劲 .亲们用这个把,把ColorPicker封装为...

    最新C# wpf WebView2覆盖上层控件解决办法

    WebView2为WPF网页浏览工具,具有简单易用,页面显示清晰的优点。 但是,由于微软设计缺陷,无法进行分层界面设计,顶层控件会被遮挡住。 本样例很好的解决了上述问题,实现界面的分层控制,能够正常显示顶层控件。...

    C# wpf combobox带treeview的自定义控件示例源码

    对于ComboBox,我们需要定义一个Popup,其中包含一个TreeView。TreeView的ItemsSource同样绑定到ViewModel的集合,并且每个TreeViewItem的模板应根据数据项的属性进行定制。此外,可能还需要添加一些事件处理程序,...

    Wpf TextBox自动补全

    在Windows Presentation Foundation (WPF) 中,TextBox是一个常用的控件,用于接收用户的文本输入。在某些应用场景中,如搜索引擎、编程环境或者数据录入界面,我们可能希望TextBox具有自动补全功能,即用户在输入时...

    WPF弹出半透明遮罩

    在Windows Presentation Foundation(WPF)中,创建一个半透明的弹出遮罩是常见的需求,尤其是在设计用户界面时,为了提供更好的用户体验,我们可能需要在主窗口上显示一个半透明的覆盖层,以突出显示某些内容或者...

Global site tag (gtag.js) - Google Analytics