我正在尝试编写一个使用MDI的应用程序,在某种意义上说,我有一个很大的胜利和一个带有许多小窗口的画布区域。这些小窗口可以在画布中调整大小,拖动和移动。
我使用此库完成了上述操作:http://wpfmdi.codeplex.com/
然而,该库充满了错误并且极其严格(除了它是一个废弃的项目)。
因此,我想知道我在WPF中使用MDI的其他选择。我认为编写类似于上面链接的库的代码太麻烦了 - 它基本上处理小窗口的拖动和调整大小,并确保它们不能被拖到画布的边缘之外。我不认为自己编码很容易。
有什么想法吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
我又看了一下这个MDI库。我想我解决了这个问题。您希望MdiChild最大化,就像单击它时一样。
问题是,如果在主窗口的构造函数中将MdiChild的WindowState设置为Maximized,则无法获得预期的大小调整。因此,您需要确保主窗口已加载,然后确保已加载MdiChild。如果是这种情况,您可以以编程方式设置MdiChild的WindowState并获得预期的行为。
请参阅以下示例代码(查看下面的完整源代码)以了解Loaded-events:
void Main_Loaded(object sender, RoutedEventArgs e)
{
var mdiChild = new MdiChild
{
Title = "Window Using Code",
Content = new ExampleControl(),
Width = 500,
Height = 450,
Position = new Point(200, 30)
};
Container.Children.Add(mdiChild);
mdiChild.Loaded +=new RoutedEventHandler(mdiChild_Loaded);
}
void mdiChild_Loaded(object sender, RoutedEventArgs e)
{
if (sender is MdiChild)
{
var mdiChild = (sender as MdiChild);
mdiChild.WindowState = WindowState.Maximized;
}
}
这是使source code成功的{{3}}。如果这有帮助,请告诉我。
答案 2 :(得分:0)