gpt4 book ai didi

c# - 如何在 LayoutAnchorable AvalonDock 2 中放置窗口实例

转载 作者:行者123 更新时间:2023-11-30 15:36:20 27 4
gpt4 key购买 nike

我正在将 WPF C# 应用程序(不是 MVVM)中的 AvalonDock 从 1.3 升级到 2.0。在 1.3 中,只要使用 DockableContent,我就可以放置自定义窗口:XAML:

<!--<Window-->
<ad:DockableContent x:Class="Test.JournalWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ad="clr-namespace:AvalonDock;assembly=AvalonDock"
xmlns:local="clr-namespace:Test"
xmlns:sys="clr-namespace:System;assembly=mscorlib"

Loaded="Journal_Loaded" StateChanged="Journal_StateChanged"
Title="Journal" Icon = "Resources/journalLog.ico" HideOnClose="True" Height="300" Width="Auto">

<ad:DockableContent.Resources>
</ad:DockableContent.Resources>

<Grid> </Grid>
</ad:DockableContent>
<!--</Window>-->

代码隐藏:

public partial class JournalWindow : DockableContent
{
public JournalWindow()
{
InitializeComponent();
}

MainWindow 中显示实例化元素的代码:

JournalWindow journalWindow;
journalWindow = new JournalWindow()
{
Name = nameJournalWindow,
Title = "Journal"
};

journalWindow.IsCloseable = true;
journalWindow.HideOnClose = true;
journalWindow.Show(dockManager);

如何使用 AvalonDock 2 在 LayoutAnchorable 或其他布局元素(以前称为 DockableContent)中放置和显示 JournalWindow 的实例?

最佳答案

AvalonDock 在新版本中发生了很大变化。在 AD 2.0 中你有两个选择:1) 最简单的方法是创建一个标准的 UserControl(在您的例子中,JournalWindow 从 UserControl 而不是 DockableContent 派生)并将控件放在 LayoutAnchorable 中(作为其内容)。示例代码:

<UserControl x:Class="Test.JournalWindow" ...>
...
</UserControl>

<LayoutAnchorable Title="My Journal Window">
<testNamespace:JournalWindow/>
</LayoutAnchorable>

2) 推荐的方法是使用 MVVM 方法,为此我会向您指出附加到 AvalonDock 库的示例项目 MVVMTestApp: http://avalondock.codeplex.com/downloads/get/558780

再见

关于c# - 如何在 LayoutAnchorable AvalonDock 2 中放置窗口实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com