c# WPF主窗口中的子窗口
本文关键字:窗口 WPF | 更新日期: 2023-09-27 17:50:31
所以我看了一下,发现MDI是为WPF选择的,基本上我要做的是在加载的网格对象中显示一个特定的页面,一旦从我的下拉菜单中选择了一个菜单项,网格的内容将从不同的页面更改为内容(这取决于哪个菜单项被选中)。
进入更多的细节(也许这将有所帮助),窗口将显示的区域将需要有窗口没有边框,或标题,或按钮最小化/关闭等。只显示这个窗口的内容,它不会被调整大小,而是固定的,我有一个菜单,正如我之前说的,当点击一个不同的菜单项时,相关的窗口应该显示在固定区域。此外,如果该内容中显示的任何按钮或事件发生(例如,按钮导致显示不同的窗口),则固定区域中的内容应由新窗口的内容替换
这是我第一次做这样的事情,从我所读到的,听起来这是一个非常棘手的WPF应用程序,我希望我能得到一些我应该去的见解或方向,这样我就可以使这成为可能。
谢谢。
您可以从扩展WPF工具包社区版中尝试例如ChildWindow。
编辑# 1:但每当我尝试创建一个窗口容器在Xaml它有使用"xctk:WindowContainer"命名空间前缀的问题如何创建适当的名称空间前缀来使用它?
你必须添加命名空间:
xmlns:xctk=http://schemas.xceed.com/wpf/xaml/toolkit
例如:<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
Title="MainWindow" Height="350" Width="525">
<Grid>
<xctk:WindowContainer>
<xctk:ChildWindow Height="100" Width="250" Left="10" Top="10">
<TextBlock Text="Hello World ..." />
</xctk:ChildWindow>
</xctk:WindowContainer>
</Grid>
</Window>
编辑# 2:你当然可以改变一些属性(例如):
<xctk:ChildWindow
Height="100"
Width="250"
Left="10"
Top="10"
Name="chWindow"
CloseButtonVisibility="Hidden"
WindowStyle="None"
BorderThickness="0">
编辑# 3:创建Wpf应用程序,在主窗口中添加扩展Wpf工具包2.4 NuGet包。在MainWindow.xaml.cs中添加下一个代码:好的,是的,所以在引用了所有内容后它仍然会给我错误。
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
this.chWindow.Show();
}
}
}