WPF 在主窗口中使用视图
WPF using view inside mainwindow
我正在尝试在我的主窗口中使用一个视图。所以我在项目的视图文件夹中创建了视图,并尝试在主 window 中使用它。但是我得到 运行 时间错误。有人可以帮忙吗?
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>
但是当我 运行 应用程序时,我在主 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'.
您不能将 Window
嵌套在另一个 Window
中。您可以将 Grid
直接放在 Window
中,也可以创建一个 UserControl
。
将第二个 window 更改为用户 control.Then 它将起作用
您或许可以将其嵌入框架中:
<Frame Source="Login.xaml" />
而不是
<views:Login></views:Login>
您可能需要将 Login.xaml Window 设为主页。
我相信有更好的方法可以实现它,但它确实有效=)
我正在尝试在我的主窗口中使用一个视图。所以我在项目的视图文件夹中创建了视图,并尝试在主 window 中使用它。但是我得到 运行 时间错误。有人可以帮忙吗?
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>
但是当我 运行 应用程序时,我在主 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'.
您不能将 Window
嵌套在另一个 Window
中。您可以将 Grid
直接放在 Window
中,也可以创建一个 UserControl
。
将第二个 window 更改为用户 control.Then 它将起作用
您或许可以将其嵌入框架中:
<Frame Source="Login.xaml" />
而不是
<views:Login></views:Login>
您可能需要将 Login.xaml Window 设为主页。
我相信有更好的方法可以实现它,但它确实有效=)