WPF之模仿Visual Studio效果的框架界面

本文介绍了如何使用AvalonDock.dll控件构建一个类似Visual Studio的WPF框架界面,包括DockingManager、ResizingPanel、DocumentPane、DockablePane和DockableContent等关键元素的用法,以及实现菜单、文档编辑区、工具箱和错误输出等功能。

方式:使用AvalonDock.dll控件。


AvalonDock有如下主要元素:

1.DockingManager: DockingManager是AvalonDock中最核心的控件标签,容纳所有AvalonDock标签。

2.ResizingPanel: 用于整体界面布局,方向有横向和纵向。

3.DocumentPane:通常用于包含文字编辑的标签,也可以包含DockableContents标签,DocumentPane不能被拖动

4.DocumentContent:包含在DocumentPane里面,一般用于文本编辑的功能,类似vs2010的代码编辑框部分。

4.DockablePane:能够类似vs2010的工具箱面板,能够吸附在边框上的效果。

5.DockableContent:包含在DockablePane里面,下方显示DockableContent的Title


下面来实现一个类似vs2010的界面,先贴上效果图:



<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="24"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="24"/>
        </Grid.RowDefinitions>
        <Menu>
            <MenuItem Header="File">
                <MenuItem Header="New Document" Click="NewDocument_Click"  Name="NewDocument"/>
                <MenuItem Header="Exit"/>
            </MenuItem>
        </Menu>
        <my:DockingManager x:Name="dockManager" Grid.Row="1">
            <my:ResizingPanel Orientation="Vertical">
                <my:ResizingPanel Orientation="Horizontal">
                    <my:DocumentPane Name="DocumentPane1">
                        <my:DocumentContent Title="MyDocument1" Name="MyDoc1">
                            <TextBox Name="tbContents" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" TextWrapping="Wrap"></TextBox>
                        </my:DocumentContent>
                    </my:DocumentPane>
                    <my:DockablePane my:ResizingPanel.ResizeWidth="150">
                        <my:DockableContent x:Name="classesContent" Title="Classes">
                            <TreeView>
                                <TreeViewItem Header="Class1"/>
                                <TreeViewItem Header="Class2"/>
                            </TreeView>
                        </my:DockableContent>
                        <my:DockableContent x:Name="toolsContent" Title="Tools">
                            <ListBox>
                                <ListBoxItem Content="Tool1"></ListBoxItem>
                                <ListBoxItem Content="Tool2"></ListBoxItem>
                                <ListBoxItem Content="Tool3"></ListBoxItem>
                            </ListBox>
                        </my:DockableContent>
                    </my:DockablePane>
                </my:ResizingPanel>
                <my:DockablePane my:ResizingPanel.ResizeHeight="100">
                    <my:DockableContent Title="Errors" x:Name="errorsContent">
                        <ListView>
                            <ListView.View>
                                <GridView>
                                    <GridView.Columns>
                                        <GridViewColumn Header="Error"/>
                                        <GridViewColumn Header="Page"/>

<GridViewColumn Header="File"/>
                                        <GridViewColumn Header="Row"/>
                                    </GridView.Columns>
                                </GridView>
                            </ListView.View>
                        </ListView>
                    </my:DockableContent>
                    <my:DockableContent Title="Output" x:Name="output">
                        <TextBox IsReadOnly="True" AcceptsReturn="True"/>
                    </my:DockableContent>
                </my:DockablePane>
                </my:ResizingPanel>
        </my:DockingManager>
        <StatusBar Grid.Row="2">
            <StatusBarItem Content="AvalonDock 1.3 Sample Project"/>
        </StatusBar>
    </Grid>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值