所以iv环顾四周,发现MDI对于WPF很有用,基本上我要做的是在加载时在网格对象中显示一个特定的页面,一旦我的下拉菜单中的菜单项是如果选中,网格的内容将更改为来自不同页面的内容(这取决于选择的菜单项)。
进入更多细节(也许这将有所帮助)窗口将显示的区域将需要没有边框的窗口,或标题,或最小化/关闭等的按钮..仅显示此内容窗口,它不会被调整大小但是固定,我有一个菜单,正如我之前所说,当点击一个不同的菜单项时,相关的窗口应该显示在固定区域。此外,如果显示此内容中的任何按钮或事件(例如,按钮导致显示不同的窗口),则固定区域中的内容应替换为此新窗口的内容
这是我第一次做这样的事情,从我读过的内容来看,听起来这对于WPF应用程序来说是非常棘手的,我希望我能得到某种洞察力或指导我应该如此我可以做到这一点。
感谢。
答案 0 :(得分:2)
您可以尝试使用Extended WPF Toolkit Community Edition中的ChildWindow。
编辑#1:
但每当我尝试在Xaml中创建一个WindowContainer时它就有了 带有" 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中添加以前的代码并在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();
}
}
}