2017-07-05 7 views
0

Zunächst einmal, vielen Dank dafür, dass Sie sich die Zeit genommen haben, dies zu lesen. Ich bin ziemlich neu zu WPF und vor allem zu MahApps - http://mahapps.comWechseln Sie Seiten in WPF mit MahApps

Ich habe Probleme beim Wechseln zwischen Seiten, die ich mit MahApps in meinem Fenster erstellt habe.

Hier ist mein Startfenster (Hauptfenster):

<Window 
        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:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" x:Class="WpfApplication.MainWindow" 
        xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" 
        Dialog:DialogParticipation.Register="{Binding}" 
        Title="MainWindow" 
        Height="600" 
        Width="800"> 
<Grid> 
    <Frame x:Name="Main"/> 
</Grid> 

Hier ist die Seite, die ich verschieben möchten (ich einen Rahmen in der Haupt so habe ich den Inhalt dieser setzen könnte Seite darauf):

<Controls:MetroWindow 
        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:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" x:Class="WpfApplication.MainMenu" 
        xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" 
        Dialog:DialogParticipation.Register="{Binding}" 
        Title="MainMenu" 
        Height="600" 
        Width="800" NonActiveBorderBrush="#FFC32C2C"> 
<Grid> 

    <Image x:Name="Background" Source="C:\Users\User\Desktop\Iddo Work\C#Learning\WpfApplication/teaserBackground.jpg" Stretch="UniformToFill"> 
     <Image.BitmapEffect> 
      <BlurBitmapEffect Radius="17" /> 
     </Image.BitmapEffect> 
    </Image> 
    <Image x:Name="Logo" Source="C:\Users\User\Desktop\Iddo Work\C#Learning\WpfApplication/Trivia.png" Margin="0,60,0,320" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
    <TextBox x:Name="Username" Controls:TextBoxHelper.Watermark="  USERNAME" Margin="0,308,0,226" Width="200" Height="35" TextAlignment="Justify" FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" /> 
    <TextBox x:Name="Password" Controls:TextBoxHelper.Watermark="  PASSWORD" Margin="0,378,0,156" Width="200" Height="35" TextAlignment="Justify" FontSize="20" FontWeight="Bold" /> 
    <Button x:Name="SignIn" Content="" HorizontalAlignment="Left" Margin="407,435,0,0" VerticalAlignment="Top" Width="80" Style="{DynamicResource MetroCircleButtonStyle}" Height="80" BorderBrush="{x:Null}" Foreground="{x:Null}" Click="SignIn_Click"> 
     <Button.Background> 
      <ImageBrush ImageSource="C:\Users\User\Desktop\Iddo Work\C#Learning\WpfApplication/signIn.png"/> 
     </Button.Background> 
    </Button> 
    <Button x:Name="SignUp" Content="" HorizontalAlignment="Left" Margin="310,435,0,0" VerticalAlignment="Top" Width="80" Style="{DynamicResource MetroCircleButtonStyle}" Height="80" BorderBrush="{x:Null}" Foreground="{x:Null}" Click="SignUp_Click"> 
     <Button.Background> 
      <ImageBrush ImageSource="C:\Users\User\Desktop\Iddo Work\C#Learning\WpfApplication/sign-add-icon.png"/> 
     </Button.Background> 
    </Button> 

</Grid> 

Vielen Dank im Voraus!

+1

Bitte geben Sie eine [Minimal, vollständig und prüfbare Beispiel] (https://stackoverflow.com/help/mcve) – FortyTwo

+0

Klar doch. Ein Teil des Codes –

Antwort

0

Aktualisierte Antwort: Frames selbst sind zum Laden von Seiten gedacht und Ihr Menüelement erbt von einem Fenster, so dass es nie funktioniert.

Hier sind die Mods Sie machen müssen:

  1. In Ihrem MainWindow.xaml das Fenster Tag Steuerelemente ändern: MetroWindow (wie Sie in Ihrem MainMenu XAML haben

  2. In Ihrem Mainwindow. xaml.cs entfernen Sie die Referenzbasisklasse für die Mainwindow (Mainwindow: Fenster werden nur Mainwindow)

  3. In Ihren MainMenu.xaml Änderung Kontrollen: MetroWindow nur Usercontrol

  4. Zurück in Ihrem MainWindow.xaml, einen ref zu Ihrem Namensraum xmlns hinzufügen: my = "clr-namespace: WhateverHere"

  5. In MainWindow.xaml, entfernen Sie das und das Steuerelement hinzuzufügen, sondern direkt

MainWindow.xaml

<Controls:MetroWindow x:Class="WPFDeleteMe.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:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" 
      xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro" 
      xmlns:my="clr-namespace:WPFDeleteMe" 
      Title="MainWindow" Height="700" Width="900"> 
     <Grid x:Name="RootGrid"> 
      <my:MainMenu></my:MainMenu> 
     </Grid> 
    </Controls:MetroWindow> 

MainWindow.xaml.cs

public partial class MainWindow 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
    } 

MainMenu.xaml

<UserControl x:Class="WPFDeleteMe.MainMenu" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
       mc:Ignorable="d" 
       d:DesignHeight="600" d:DesignWidth="800"> 
     <Grid> 
      <Image x:Name="Background" Source="d:\images\doll-161405_960_720.png" Stretch="UniformToFill"> 
       <Image.BitmapEffect> 
        <BlurBitmapEffect Radius="17" /> 
       </Image.BitmapEffect> 
      </Image> 
      <Image x:Name="Logo" Source="d:\images\Carestream_Solutions.gif" Margin="0,0,0,0" Width="150" Height="40" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
      <Button x:Name="SignIn" Content="" HorizontalAlignment="Left" Margin="407,435,0,0" VerticalAlignment="Top" Width="80" Height="80" BorderBrush="{x:Null}" Foreground="{x:Null}" Click="SignIn_Click"> 
       <Button.Background> 
        <ImageBrush ImageSource="d:\images\war_kitten.jpg"/> 
       </Button.Background> 
      </Button> 
      <Button x:Name="SignUp" Content="" HorizontalAlignment="Left" Margin="310,435,0,0" VerticalAlignment="Top" Width="80" Height="80" BorderBrush="{x:Null}" Foreground="{x:Null}" Click="SignUp_Click"> 
       <Button.Background> 
        <ImageBrush ImageSource="d:\images\war_kitten.jpg"/> 
       </Button.Background> 
      </Button> 
     </Grid> 
    </UserControl> 
+0

Hallo, danke fürs Antworten. Ich habe diese Methode versucht, aber leider erhalte ich diese Nachricht: http://printscr.com/fs9g7p –

+0

Ich denke, dass es verursacht, weil das MainMenu ein Typ und nicht ein reguläres ist .... Nicht sicher, wie löse es –

+0

Blick auf ein Projekt, das ich mit Mahapps zuvor als Referenz getan habe, aktualisiere Antwort. –

Verwandte Themen