Ersetzen-Fenster-Titel-Menü für MahApps.Metro randloses Fenster
Entwickle ich eine Grenze weniger WPF-Windows-Anwendung mit MahApps.Metro
Kontrolle.
Möchte ich meine Menü, wo normalerweise das Fenster geht der Titel (Title bar auf der linken Seite). Wie unten Bild:
Was habe ich bisher sieht wie folgt aus Bild:
Ich habe versucht Einstellung HorizontalAlignment="Left"
, aber die Menü-Gruppe bleibt auf der rechten Seite der Titelleiste.
Code für diese:
<Controls:MetroWindow.WindowCommands>
<Controls:WindowCommands HorizontalAlignment="Left">
<Menu IsMainMenu="True" x:Name="mnuMainMenu" Height="28" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="12" Background="Transparent" Width="Auto" >
<MenuItem Header="_File" x:Name="mnuFile" Visibility="Visible" Background="Transparent">
<MenuItem Header="_Open" x:Name="mnuOpen" Background="Transparent" Command="{Binding MenuOpenCommand}" />
<MenuItem Header="_Exit" x:Name="mnuExit" Click="btnExit_Click" Background="Transparent"/>
</MenuItem>
<MenuItem Header="_Tools">
<MenuItem Header="_Repeat" x:Name="mnuRepete" Background="Transparent" >
<MenuItem Header="Repeat None" Command="{Binding RepeatNoneCommand}" IsCheckable="True"/>
<MenuItem Header="Repeat One" Command="{Binding RepeatOneCommand}" IsCheckable="True"/>
<MenuItem Header="Repeat All" Command="{Binding RepeatAllCommand}" IsCheckable="True"/>
</MenuItem>
</MenuItem>
<MenuItem Header="_Store" x:Name="smOnlineMode" Background="Transparent" Click="smOnlineMode_Click" IsCheckable="True" />
<MenuItem Header="_Play Mode" x:Name="smPlayMode" Background="Transparent" Click="smPlayMode_Click" IsCheckable="True" IsChecked="True"/>
<MenuItem Header="_Play">
<MenuItem Header="_Play" x:Name="mnuPlay" Background="Transparent" Command="{Binding PlayCommand}"/>
<MenuItem Header="P_ause" x:Name="mnuPause" Background="Transparent" Command="{Binding PauseCommand}"/>
<MenuItem Header="_Stop" x:Name="mnuStop" Background="Transparent" Command="{Binding StopCommand}"/>
<Separator/>
<MenuItem Header="_Next" x:Name="mnuNext" Background="Transparent" Command="{Binding NextTrackCommand}"/>
<MenuItem Header="P_revious" x:Name="mnuPrevious" Background="Transparent" Command="{Binding PreviousTrackCommand}" />
<MenuItem Header="_Mute/UnMute" x:Name="smnuMute" Background="Transparent" Command="{Binding MuteSoundCommand}" />
<!--Command="{Binding MuteSoundCommand}"-->
</MenuItem>
<MenuItem Header="_Help">
<MenuItem Header="_Help" x:Name="smnuOnlineHelp" Background="Transparent" Click="smnuHelp_Click" />
<Separator />
<MenuItem Header="_Register Player" x:Name="smnuRegister" Background="Transparent" Click="smnuRegisterPlayer" />
<MenuItem Header="_About Codero Music Player" x:Name="smnuAbout" Background="Transparent" Click="smnuAboutClick" />
</MenuItem>
</Menu>
</Controls:WindowCommands>
</Controls:MetroWindow.WindowCommands>
- danke für den edit @Nikolaev
- WindowCommands sind die minimieren, maximieren/wiederherstellen und schließen-Schaltflächen. Sie können eigene Steuerelemente zu WindowsCommands auf Mahapps.Metro - Quick Start würde vorschlagen, Sie wird immer auf der rechten Seite
- möglicherweise sind Sie richtig! WindowsCommands auf Mahapps.Metro wird immer auf der rechten Seite. Ich habe versucht, alle möglichen Wege kamen mir in den Sinn.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie so etwas tun
MetroWindow.LeftWindowCommands
tagCode:
Erstellen
StackPanel
ist, setzen Sie Ihr Menü inStackPanel
und setzen Sie die EigenschaftHorizontalAlignment=Left
oder versuchen Sie es mit Margin-Eigenschaft wiederMüssen Sie die restyle MetroWindow für Ihre eigenen. Der einfachste Weg für Ihre Bedürfnisse wäre, um eine benutzerdefinierte Ressource-Wörterbuch und kopieren Sie die MetroWindow.xaml in es und ändern Sie folgende Zeile, um
Grid.Column="0"
:MetroWindow.xaml
Aber vergessen Sie nicht zu laden, dass die modifizierte Ressource in
App.xaml
.Die Lösung, die funktioniert für mich in MahApps.Metro 1.6.5 binden die TitleTemplate Abhängigkeitseigenschaft mit der Menüleiste und den Titel-Textblock in das Hauptfenster, wie unten gezeigt:
MainWindow.xaml:
MainWindow.cs