11

私は現在 WPF アプリケーションに取り組んでいますが、アプリケーションを全画面表示にする方法がわかりません。私は MahApps.Metro を使用しているので、メインウィンドウのタイプは Controls.MetroWindow です。

私はこれを試しました:

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      ResizeMode="NoResize"
                      WindowState="Maximized"
                      Title="MyProject">

ただし、Windows タスクバーは非表示になりません。しかし、単純なウィンドウを使用すると機能します。MetroWindow のソース コードを見たところ、Window クラスを継承しているため、なぜ機能しないのかわかりません。

Metro で全画面ウィンドウを表示する唯一の方法は、IgnoreTaskbarOnMaximize プロパティを true に設定し ResizeMode ="NoResize" (以下のコードを参照) を削除し、アプリを実行して最大化することです。

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      IgnoreTaskbarOnMaximize="True"
                      Title="MyProject">

しかし、最小化ボタンと最大化ボタンを非表示にしたいと思います.. Controls.MetroWindow をフルスクリーンで起動するアイデアはありますか?

4

2 に答える 2

14

問題を再現できます。ここでバグとして報告する必要があります

今のところ簡単な回避策は次のとおりです。

あなたが得たのと同じようにあなたのxamlを保ちます:

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      IgnoreTaskbarOnMaximize="True"
                      Title="MyProject">

Windowのコードビハインドで:

public MainWindow() {
  InitializeComponent();
  Loaded += OnLoaded;
}

private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) {
  WindowState = WindowState.Maximized;
  ResizeMode = ResizeMode.NoResize;
  ShowMaxRestoreButton = false;
  ShowMinButton = false;
  Loaded -= OnLoaded;
}

これにより、必要な動作が得られます。状態(最大化)を設定し、Loadedイベントで最小/最大ボタンを非表示にして、一度だけ実行します。

于 2013-09-10T14:58:58.430 に答える