簡體   English   中英

如何從WPF UserControl刪除Windows邊框?

[英]How to remove Windows border from WPF UserControl?

為了解決這個問題,我正在編寫一個應用程序的后端編碼,該應用程序的UI是由其他人組合在一起的(我相信使用Blend)。 該應用程序由一系列“屏幕”組成,其XAML中的根元素是“ UserControl”。 在源代碼的任何地方都沒有使用“ Window”標簽。

我要做的是刪除運行程序時添加到應用程序外部邊緣的Windows邊框。 邊框當前由前進/后退按鈕(例如網絡瀏覽器)和要關閉的X按鈕組成。

我可以從搜索中找到的所有信息都是添加說明

WindowStyle="None"

<Window>

元件。 但是,當然,我沒有這些之一,而且WindowStyle不是UserControl的屬性。 有人知道如何使用UserControl根元素完成此操作嗎?

編輯:該應用程序的StartupUri是

this.StartupUri = new Uri(@"pack://application:,,,/WpfPrototype1.Screens;Component/Screen_1.xaml");

它指向的文件沒有Window標記。

根據上面的評論,您的MainWindow似乎是在某個地方動態創建的,但是您可以使用Application類來獲取應用程序MainWindow

var mainWindow = Application.Current.MainWindow;

然后您可以從那里設置邊框樣式

例:

private void RemoveBorder()
{
    var mainWindow = Application.Current.MainWindow;
    if (mainWindow != null)//should never be
    {
        mainWindow.WindowStyle = System.Windows.WindowStyle.None; // removes top bar (icon, title, close buttons etc)
        mainWindow.AllowsTransparency = true; //removes the border around the outside
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM