2015-10-09 75 views
0

我想在我的主窗口中使用視圖。所以我在我的項目的視圖文件夾內創建了視圖,並嘗試在主窗口中使用它。但是我得到運行時錯誤。誰能幫忙?WPF使用主窗口中的視圖

XAML主窗口

<Window x:Class="DataRetrieval.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:prism="http://www.codeplex.com/prism" 
     xmlns:views="clr-namespace:DataRetrieval.Views" 
     Title="MainWindow" Height="350" Width="525"> 
    <TabControl Name="TabControl1" > 
     <TabControl.ItemContainerStyle> 
      <Style TargetType="{x:Type TabItem}"> 
       <Setter Property="Visibility" Value="Collapsed"/> 
      </Style> 
     </TabControl.ItemContainerStyle> 
     <TabItem Header="General"> 
      <views:Login></views:Login> 
     </TabItem> 

    </TabControl> 
</Window> 

XAML瀏覽:

<Window x:Class="DataRetrieval.Views.Login" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Login" Height="300" Width="300"> 
    <Grid> 
     <Grid.ColumnDefinitions> 

      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="*"/> 


     </Grid.ColumnDefinitions> 
     <StackPanel Grid.Column="0"> 
      <Label Content="User Name:" Width="Auto"/> 
      <Label Content="Password:" Width="Auto"/> 

     </StackPanel> 
     <StackPanel Grid.Column="1"> 
      <TextBox Grid.Column="1" Name="Username" Text="" VerticalAlignment="Top" Width="Auto"/> 
      <PasswordBox Grid.Column="1" Name="Password" VerticalAlignment="Top" Width="Auto"/> 

     </StackPanel> 

    </Grid> 
</Window> 

但是當我運行的應用程序,我得到我的主窗口XAML代碼運行時錯誤:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll 

Additional information: 'Set property 'System.Windows.Controls.ContentControl.Content' threw an exception.' Line number '14' and line position '14'. 
+0

你不能在另一個窗口中嵌套一個窗口。如果您在另一個文件中需要它,則應該僅採用網格,而不包含其中的窗口 – Domysee

+0

創建UserControl代替 – Domysee

+0

您需要創建單獨的usercontrol並在主窗口中使用它。 –

回答

2

你不能在另一個Window中嵌套Window。您可以將Grid直接放入Window或改爲創建UserControl

3

將第二個窗口,用戶control.Then它會工作

1

你也許可以將它嵌入在一個框架:

<Frame Source="Login.xaml" /> 

,而不是

<views:Login></views:Login> 

您可能需要儘可能使Login.xaml窗口成爲一個頁面。

我敢肯定有更好的方法來實現它,但它的工作原理=)

+0

yap。當我們通過窗口進行導航時,Frame也是更好的選擇 – Thabo

相關問題