2015-10-09 5 views
0

Я пытаюсь использовать представление внутри моего mainwinow. Поэтому я создал представление внутри папки просмотра в своем проекте и попытался использовать его в главном окне. Но я получаю ошибку времени выполнения. Может ли кто-нибудь помочь?WPF с использованием вида внутри mainwindow

XAML MainWindow

<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> 

Но когда я запустить приложение, я получаю сообщение об ошибке выполнения на моем MainWindow код 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

, вам нужно создать отдельный пользовательский контроль и использовать его в главном окне. –

ответ

2

Вы не можете гнездо a Window в другом Window. Вы можете поместить Grid непосредственно в Window или создать вместо этого UserControl.

3

Изменить второе окно для пользователя control.Then он будет работать

1

Вы могли бы быть в состоянии вставить его в рамку:

<Frame Source="Login.xaml" /> 

вместо

<views:Login></views:Login> 

Вам может понадобиться чтобы сделать окно Login.xaml на странице.

Я уверен, что есть лучшие способы его достижения, но он работает =)

+0

yap. Рамка также является лучшим вариантом при навигации по окну в окно – Thabo

Смежные вопросы