0

この質問の前に、私は他の誰かが UI をまとめたアプリケーションのバックエンドのコーディングに取り組んでいます (Blend を使用していると思います)。アプリケーションは一連の「画面」で構成され、XAML のルート要素は「UserControl」です。ソースのどこにも「ウィンドウ」タグは使用されていません。

私がやりたいことは、プログラムを実行したときにアプリケーションの外側の端に追加される Windows 境界線を削除することです。境界線は現在、Web ブラウザーのような進む/戻るボタンと、閉じるための X ボタンで構成されています。

検索から見つけることができるのは、追加する指示だけです

WindowStyle="None"

<Window>

エレメント。もちろん、私はそれらの 1 つを持っていません。また、WindowStyle は UserControl のプロパティではありません。UserControl ルート要素でこれを達成する方法を知っている人はいますか?

編集: アプリケーションの StartupUri は

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

それが指すファイルには Window タグがありません。

4

1 に答える 1

2

上記のコメントに基づいて、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
    }
}
于 2013-04-29T06:14:54.747 に答える