首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在wpf中使用avalondock

如何在wpf中使用avalondock
EN

Stack Overflow用户
提问于 2014-11-07 15:11:41
回答 1查看 1.7K关注 0票数 0

嘿,我和雪场有点小问题。

我试图改变我的观点,基本上是一个有两列的网格(一个相当大的部分在左边,一个相当小的部分在右边有两个小窗口)。我希望左边的一个作为我的窗口的“背景”,右边的两个小窗口应该可以停靠在任何用户想停靠它们的地方。这是我尝试过的:

代码语言:javascript
运行
复制
<DockPanel>
    <Grid>
        <avalonDock:DockingManager Name="dockManager">
<avalonDock:LayoutRoot>
                <avalonDock:LayoutRoot.LeftSide>
                    <avalonDock:LayoutAnchorSide>
                        <avalonDock:LayoutAnchorGroup>
                            <avalonDock:LayoutAnchorable Title="Editor"
                                                         ContentId="Editor"
                                                         CanClose="False"
                                                         CanHide="False"
                                                         CanAutoHide="False"
                                                         CanFloat="False"
                                                         AutoHideMinWidth="200">                                    
                                <ContentControl>
                                    <GroupBox Grid.RowSpan="3"
                                              Grid.Column="0"
                                              Header="Editor"
                                              Visibility="{Binding IsFileOpen}">
                                        <ContentControl Content="{Binding EditorViewModel}" />
                                    </GroupBox>
                                </ContentControl>

                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorGroup>
                    </avalonDock:LayoutAnchorSide>
                </avalonDock:LayoutRoot.LeftSide>
<avalonDock:LayoutPanel>
                    <avalonDock:LayoutDocumentPane DockWidth="0.8*" />

                    <avalonDock:LayoutAnchorablePaneGroup Orientation="Vertical"
                                                          DockWidth="400">
                        <avalonDock:LayoutAnchorablePane>
                            <avalonDock:LayoutAnchorable Title="Tools"
                                                         ContentId="Elements"
                                                         CanClose="False"
                                                         CanHide="False">
                                <ContentControl Content="{Binding ElementsViewModel}" />
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorablePane>

                        <avalonDock:LayoutAnchorablePane>
                            <avalonDock:LayoutAnchorable Title="Properties"
                                                         ContentId="Properties"
                                                         CanClose="False"
                                                         CanHide="False">
                                <GroupBox Header="Properties">
                                    <GroupBox.Resources>
                                        <ResourceDictionary>
                                            <ResourceDictionary.MergedDictionaries>
                                                <ResourceDictionary Source="pack://application:,,,/ET.Usage.Acp.Apps.EventDrivenPetriNet.Editor;component/View/DataTemplates/PropertiesTemplates.xaml" />
                                                <ResourceDictionary Source="pack://application:,,,/ET.Usage.Acp.Apps.EventDrivenPetriNet.Editor;component/View/Styles/MainStyles.xaml" />
                                            </ResourceDictionary.MergedDictionaries>
                                        </ResourceDictionary>
                                    </GroupBox.Resources>
                                    <Border Background="{StaticResource ResourceKey=TabControl_BackgroundBrush_Base}"
                                            BorderBrush="{StaticResource ResourceKey=TabItem_BorderBrush_Selected}"
                                            BorderThickness="1,1,1,1">
                                        <Border Margin="8"
                                                BorderBrush="{StaticResource ResourceKey=TabPage_InnerBorderBrushDark}"
                                                BorderThickness="1"
                                                CornerRadius="3">
                                            <Border Margin="0"
                                                    BorderBrush="{StaticResource ResourceKey=TabPage_InnerBorderBrushBright}"
                                                    BorderThickness="1"
                                                    CornerRadius="2"
                                                    Padding="2,2,3,3">
                                                <ContentControl MinHeight="80"
                                                                Content="{Binding PropertiesViewModel}"
                                                                ContentTemplateSelector="{StaticResource PropertiesTemplateSelector}" />
                                            </Border>
                                        </Border>
                                    </Border>
                                </GroupBox>
                            </avalonDock:LayoutAnchorable>
                        </avalonDock:LayoutAnchorablePane>
                    </avalonDock:LayoutAnchorablePaneGroup>
                </avalonDock:LayoutPanel>
            </avalonDock:LayoutRoot>
                    </avalonDock:DockingManager>
    </Grid>
</DockPanel>

如您所见,我尝试在左侧添加编辑器视图(LayoutRoot.LeftSide),然后在右侧添加两个可停靠的视图(LayoutPanel)。

停靠窗口按预期工作,但编辑器视图也只是另一个停靠窗口。在运行时,我可以说:停靠为选项卡式文档或类似的东西,但这并不能解决我的问题,因为(即使我可以在设计时这样做)我仍然会得到一个选项卡,这是我不想要的(一个原因是因为ContentControl将再次有多个选项卡)。我只想让编辑器视图作为我的窗口的背景,它不能浮动等等。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2015-06-05 17:08:12

不幸的是,我不能回答你的具体问题,但对我来说,最好的做法是在DockingManager上实现保存布局和加载布局选项,然后在应用程序启动时简单地加载你想要的选项,这比摆弄代码要容易得多,因为出于某种原因,这似乎不可能告诉你该做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26795973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档