如何以编程方式重新停靠浮动 window

How to Re-Dock a floating window Programmatically

我正在使用 AvalonDock 进行对接功能。 window 可以从主应用程序中拉出,作为浮动 window。一旦父 window 卸载,我想将浮动 window 重新停靠(以编程方式)回到它的位置。

示例代码为:

 <xcad:DockingManager x:Name="MyDockingManager">
                            <xcad:LayoutRoot x:Name="_layoutRoot">
                                <xcad:LayoutPanel Orientation="Vertical">
                                    <xcad:LayoutAnchorablePaneGroup>
                                        <xcad:LayoutAnchorablePane>
                                            <xcad:LayoutAnchorable ContentId="moduleView" Title="Module View" CanHide="False" CanClose="False" CanAutoHide="False" CanFloat="False">
                                                <Grid>
                                                    <!-- user controls -->
                                                </Grid>
                                            </xcad:LayoutAnchorable>
                                        </xcad:LayoutAnchorablePane>
                                        <xcad:LayoutAnchorablePane>
                                            <xcad:LayoutAnchorable ContentId="liveLog" Title="Live Logs" CanHide="False" CanAutoHide="False" CanClose="False">
                                                <ListView x:Name="MyListView">

                                                </ListView>
                                            </xcad:LayoutAnchorable>
                                        </xcad:LayoutAnchorablePane>
                                    </xcad:LayoutAnchorablePaneGroup>
                                </xcad:LayoutPanel>
                            </xcad:LayoutRoot>
                        </xcad:DockingManager>

有人知道吗?

由于您使用的是代码隐藏,只需在 LayoutAnchorable 中添加一个名称即可完成此操作,例如:

<xcad:LayoutAnchorable x:Name="liveLogPane" ContentId="liveLog" Title="Live Logs" 
    CanHide="False" CanAutoHide="False" CanClose="False">
    <ListView x:Name="MyListView">

    </ListView>
</xcad:LayoutAnchorable>

然后调用Dock方法:

liveLogPane.Dock();