使用avadockpanel 2.0

本文探讨了如何在Visual Studio环境下利用AvalonDock进行布局设计,包括窗口、工具栏、主题和文档的配置。通过实例展示了如何创建自定义布局,并对关键组件如DockingManager、LayoutRoot等的使用方法进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于想写个布局好点的类似VS的布局,找到了AVAlonDock,下了个2.0的玩不来,半天在网上找了个资料看来半天,照着一行行写的。。。。不过具体的每个类和使用方法还没进一不研究,先存储起来先。。嘿嘿

<Window x:Class="TestAvalon.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:avalondock="http://schemas.xceed.com/wpf/xaml/avalondock"
        xmlns:aero="clr-namespace:Xceed.Wpf.AvalonDock.Themes;assembly=Xceed.Wpf.AvalonDock.Themes.Aero"
        xmlns:expression="clr-namespace:Xceed.Wpf.AvalonDock.Themes;assembly=Xceed.Wpf.AvalonDock.Themes.Expression"
        xmlns:vs2010="clr-namespace:Xceed.Wpf.AvalonDock.Themes;assembly=Xceed.Wpf.AvalonDock.Themes.VS2010"
        xmlns:colorpick="clr-namespace:ColorPick;assembly=ColorPick"
        xmlns:TestAdocment="clr-namespace:TestAvalondocment"
        Title="MainWindow"
        Height="350"
        Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="28" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <ToolBar  Height="28"
                  VerticalAlignment="Top">
            <Button Content="New"
                    Click="New_click" />
            <Button Content="Open File..."
                    Click="OpenFile_Click" />
        </ToolBar>
        <avalondock:DockingManager Grid.Row="1"
                                   x:Name="DockManger">
            <!--皮肤-->
            <avalondock:DockingManager.Theme>
                <avalondock:VS2010Theme>
                </avalondock:VS2010Theme>
            </avalondock:DockingManager.Theme>
            <!--布局-->
            <avalondock:LayoutRoot>
                <avalondock:LayoutRoot.LeftSide>
                    <avalondock:LayoutAnchorSide>
                        <avalondock:LayoutAnchorGroup>
                            <!--布局对象可停靠组-->
                            <avalondock:LayoutAnchorable Title="左窗口1"
                                                         AutoHideWidth="50"
                                                         ContentId="left1">
                                <!--<TestAdocment:Docment1>
                                    </TestAdocment:Docment1>-->
                                <colorpick:CoclorPick>
                                    </colorpick:CoclorPick>
                                    <!--<TextBox Width="80"
                                         SelectionChanged="TextBox_SelectionChanged">

                                </TextBox>-->
                                <!--<Grid Height="300" Width="400" Background="LightGreen">
                                    <Grid.RowDefinitions>
                                        <RowDefinition/>
                                        <RowDefinition />
                                        <RowDefinition />
                                    </Grid.RowDefinitions>
                                    <Button Grid.Row="0" Content="btn1"/>
                                        <Button Grid.Row="1"
                                                Content="btn2"/>
                                            <Button Grid.Row="2"
                                                    Content="btn3">
                                            </Button>
                                </Grid>-->
                            </avalondock:LayoutAnchorable>
                            <avalondock:LayoutAnchorable Title="left2"
                                                         AutoHideWidth="20"
                                                         ContentId="left2">
                                <TextBox Width="80"></TextBox>
                            </avalondock:LayoutAnchorable>
                        </avalondock:LayoutAnchorGroup>
                    </avalondock:LayoutAnchorSide>
                </avalondock:LayoutRoot.LeftSide>
                <avalondock:LayoutPanel>
                    <avalondock:LayoutAnchorablePaneGroup DockWidth="100">
                        <avalondock:LayoutAnchorablePane>
                            <avalondock:LayoutAnchorable Title="text1"
                                                         ContentId="text1">
                                <TextBox  TextWrapping="Wrap"
                                          AcceptsReturn="True"></TextBox>
                            </avalondock:LayoutAnchorable>
                            <avalondock:LayoutAnchorable Title="text2"
                                                         ContentId="text2">
                                <TextBox  TextWrapping="Wrap"
                                          AcceptsReturn="True"></TextBox>
                            </avalondock:LayoutAnchorable>
                        </avalondock:LayoutAnchorablePane>
                    </avalondock:LayoutAnchorablePaneGroup>
                    <avalondock:LayoutDocumentPane>
                        <avalondock:LayoutDocument Title="复用器"
                                                   ContentId="doc1">
                            <TextBox AcceptsReturn="True"
                                     TextWrapping="Wrap"></TextBox>
                        </avalondock:LayoutDocument>
                        <avalondock:LayoutAnchorable Title="频谱仪"
                                                     ContentId="doc1">
                            <TextBox AcceptsReturn="True"
                                     TextWrapping="Wrap"></TextBox>
                        </avalondock:LayoutAnchorable>
                    </avalondock:LayoutDocumentPane>
                </avalondock:LayoutPanel>
            </avalondock:LayoutRoot>
        </avalondock:DockingManager>
    </Grid>
</Window>
到现在搞的不是很明白,对于Document是直接放入一个自定义的控件类,还是用Grid自己去画,两个都能显示,但还没进一步研究代码,下来研究研究,其实很希望能够嵌入xaml文件那样就好了。。不过会接下来继续研究,测试的。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值