【问题标题】:How to show text outside window on desktop如何在桌面上的窗口外显示文本
【发布时间】:2018-04-09 08:06:51
【问题描述】:

我正在尝试制作一个简单的应用程序,在屏幕中间显示提醒(只是一个文本标签)。如何在窗外显示这个?我正在尝试使设置最小化的主窗口,而标签在特定时间显示在屏幕中间。我正在尝试在 WPF 中实现这一点,但如果这不可能,我将转向 Winforms。

编辑:

我将使用此处的技术使窗口透明:How to create a semi transparent window in WPF that allows mouse events to pass through,但是如何隐藏窗口的任何迹象,只让标签可见?

【问题讨论】:

    标签: wpf winforms desktop-application


    【解决方案1】:

    您可以通过调用Show() 方法在一个透明的不可见窗口中显示标签,而不是尝试在“窗口外”显示某些内容:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Window window = new Window();
        window.WindowStyle = WindowStyle.None;
        window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
        window.AllowsTransparency = true;
        window.Background = Brushes.Transparent;
        window.SizeToContent = SizeToContent.WidthAndHeight;
        window.ShowInTaskbar = false;
        window.Content = new TextBlock() { Text = "Floating...", FontSize = 20, Foreground = Brushes.Red };
        window.Show();
    }
    

    您可以在不影响浮动标签的情况下最小化主窗口,并且如果您将ShowInTaskbar 属性设置为false,则不可见窗口将不会获得任务栏按钮。

    【讨论】:

      【解决方案2】:

      简短回答:您不能在窗口外显示控件。每个控件都需要作为某个窗口的父级。该窗口可能没有任何边框或标题栏,但您无法显示没有窗口的控件。

      对于通知,您需要创建一个独立于应用程序主窗口的新窗口以在其中显示标签。然后,您可以在想要显示通知时显示和隐藏此窗口,即使您的主窗口是隐藏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-26
        • 2015-10-17
        • 1970-01-01
        • 2021-07-04
        • 1970-01-01
        相关资源
        最近更新 更多