构建类似Office 2007框架的WPF应用程序(3)

来源:互联网 发布:免流服务器ip改域名 编辑:程序博客网 时间:2024/05/20 07:31

七、设计状态栏(即StatusBar控件的处理)

我们先跳过主窗口的处理,先处理一下状态栏。先细枝末节,再恭迎主角。

首先,添加右下角的三角标志,这是可以鼠标拖动窗口,使之放大缩小的经典标志。当然,没有的话,也可以拖拽窗口,但总觉得少了点什么,没那么直观。改变窗口大小,是窗口的一个属性,不是StatusBar的属性,设置窗口属性ResizeMode为CanResizeWithGrip即可,如下:

Title="MainWindow" Height="350" Width="525" ResizeMode="CanResizeWithGrip"
编译后,窗口右下角出现三角标志,如图:

StatusBar控件可以嵌入任何内容,每个内容被隐藏封装在StatusBarItem对象里,我们可以添加自己需要的控件。直接添加控件,我们会发现,默认状态所有控件都是从左到右,但许多应用场景,我们常常需要的是左右两边靠边显示(某一项锁在状态栏右边),中间或留空或添加其他控件。所以,我们最好借助Grid面板来布局控件。直接添加Grid面板,我们发现还是像其他控件一样,添加在Grid的控件还是从左到右排布,并没有填满到最右边。还是得借助StatusBar的属性ItemsPanel和ItemsPanelTemplate,才能够填满整个状态栏,代码如下:

        <StatusBar Grid.Row="2">            <StatusBar.ItemsPanel>                <ItemsPanelTemplate>                    <Grid>                        <Grid.ColumnDefinitions>                            <ColumnDefinition Width="Auto"/>                            <ColumnDefinition Width="*"/>                            <ColumnDefinition Width="Auto"/>                        </Grid.ColumnDefinitions>                    </Grid>                </ItemsPanelTemplate>            </StatusBar.ItemsPanel>            <StatusBarItem >                <TextBlock >Left TextBlock</TextBlock>            </StatusBarItem>            <StatusBarItem Grid.Column="1">                <ProgressBar Value="100" MinWidth="100" MaxWidth="1000"  Height="18"/>            </StatusBarItem>            <StatusBarItem Grid.Column="2">                <TextBlock HorizontalAlignment="Left" Width="150">Right Information</TextBlock>            </StatusBarItem>        </StatusBar>
编译后,效果如下:


到这里,我们已初步处理Ribbon功能区和StatusBar状态栏,下面介绍主窗口的处理。

-------------------

源码下载地址:http://download.csdn.net/detail/mandylover/9737118


0 0
原创粉丝点击