WPF的Window窗口与Page页相互调用
时间: 2024-11-05 07:25:28 浏览: 54
在Windows Presentation Foundation (WPF)中,Window和Page都是用户界面的基本元素,它们之间可以互相调用。Window通常代表应用程序的主要入口点,而Page则是构成应用程序布局的一部分。
- **Window调用Page**: 如果Window包含了一个ContentControl(如Frame或DockPanel),你可以将Page作为其内容加载。例如,在Window的`<Window.Resources>`里创建一个`ResourceDictionary`,并设置`Content`属性为需要的Page:
```xml
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Frame Name="contentFrame" />
</Grid>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyPage.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
</Window>
```
然后在XAML文件中通过C#代码动态设置`contentFrame.Source`为Page实例:
```csharp
contentFrame.Source = new Uri("page:///MyPage.xaml", UriKind.Relative);
```
- **Page调用Window**: Page通常不会直接实例化Window,但如果需要显示一个新的窗体,可以借助于`ShowDialog()`或`Window.Show()`方法来显示Window。但是这种情况下通常是Window作为父控件展示Page,而不是反过来。
阅读全文