如何从WPF UserControl中删除Windows边框?

时间:2013-04-29 01:05:16

标签: c# wpf xaml blend

为了解释这个问题,我正在编写一个应用程序的后端编码,其UI由其他人组合在一起(我相信使用Blend)。该应用程序由一系列“屏幕”组成,其XAML中的根元素是“UserControl”。源中的任何位置都没有使用“Window”标记。

我想要做的是删除运行程序时添加到应用程序外边缘的Windows边框。边框当前包含前进/后退按钮,如Web浏览器和要关闭的X按钮。

我从搜索中找到的所有内容都是添加说明

WindowStyle="None"

<Window>

元素。但是,当然,我没有其中之一,而WindowStyle不是UserControl的属性。有人知道如何用UserControl根元素完成这个吗?

编辑:应用程序的StartupUri是

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

它指向的文件没有Window标记。

1 个答案:

答案 0 :(得分: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
    }
}