2013-04-29 53 views
0

爲了說明這個問題,我正在編寫UI由其他人(我相信使用Blend)放在一起的應用程序的後端。該應用程序由一系列「屏幕」組成,其XAML中的根元素是「UserControl」。源中任何地方都沒有使用「Window」標籤。如何從WPF UserControl中刪除Windows邊框?

我想要做的是刪除在運行程序時添加到應用程序外部邊緣的Windows邊框。邊框當前由向前/向後按鈕(如Web瀏覽器)和X按鈕關閉組成。

我可以從搜索結果中找到的指令

WindowStyle="None" 

添加到

<Window> 

元素。但是,當然,我沒有其中之一,並且WindowStyle不是UserControl的屬性。任何人都知道如何用UserControl根元素來實現這一點?

編輯:中的StartupUri的應用程序是

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

它指向沒有一個窗口標籤的文件。

+3

一個'Window'必須在某處所創建,您需要修改\ – 2013-04-29 01:09:01

+1

更努力了。窗口對象:) – 2013-04-29 01:09:20

+0

那麼我搜索整個解決方案使用查找文件中的參數「」和「<窗口」,但零結果。莫名其妙地被隱藏起來了嗎? – Tevis 2013-04-29 01:35:33

回答

3

根據上面的註釋,似乎您的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 
    } 
}