WPF中利用后台代码实现窗口分栏动态改变_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF中利用后台代码实现窗口分栏动态改变

WPF中利用后台代码实现窗口分栏动态改变

 2013/11/12 17:45:18  飞路  博客园  我要评论(0)
  • 摘要:在WPF中实现窗口分栏并能够通过鼠标改变大小已经非常容易,例如将一个GRID分成竖排三栏显示,就可以将GRID先分成5列,其中两个固定列放GridSplitter。<GridBackground="#FFEDFFFB"Name="grid1"><Grid.ColumnDefinitions><ColumnDefinitionWidth="3*"/><ColumnDefinitionWidth="10"/><
  • 标签:实现 代码 利用

      在WPF中实现窗口分栏并能够通过鼠标改变大小已经非常容易,例如将一个GRID分成竖排三栏显示,就可以将GRID先分成5列,其中两个固定列放GridSplitter

class="code_img_closed" src="/Upload/Images/2013111217/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('2ed2bdf0-8b07-488f-bbe6-3fbe86894267',event)" src="/Upload/Images/2013111217/2B1B950FA3DF188F.gif" alt="" />
<Grid Background="#FFEDFFFB" Name="grid1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*" />
            <ColumnDefinition Width="10" />
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="10" />
            <ColumnDefinition Width="1*" />
        </Grid.ColumnDefinitions>
View Code

      但是每次改变窗口的大小,我们都要去拖动GridSplitter,这里为了偷懒,我们能不能直接某些按钮或选择框,来改变窗口的显示甚至隐藏。由于是改变每一栏的宽度,这里我们自然想到的是Grid.ColumnDefinitions的Width属性,他是GridLength类型参数,所以我们只要重新构造一个GridLength参数给Width就能够通过代码改变窗口大小。在http://technet.microsoft.com/zh-cn/library/system.windows.gridlength_members(v=vs.90).aspx这里,查看GridLength的构造函数,有两种方法,当然我们可以利用第一种方法GridLength(Double)直接给出每一栏的宽度,但是如果以后我们还想在窗口中拖动GridSplitter改变窗口大小就不再可能了。

       所以,这里我用第二种构造函数GridLength(Double, GridUnitType),其中GridUnitType是一个枚举变量,有三个成员,相信大家看了其说明,也大概清楚每种变量的功能了。好了,下面看代码中如何改变窗口大小。

grid1.ColumnDefinitions[0].Width = new GridLength(4, GridUnitType.Star);
                grid1.ColumnDefinitions[2].Width = new GridLength(1.5, GridUnitType.Star);
                grid1.ColumnDefinitions[4].Width = new GridLength(1.5, GridUnitType.Star);
View Code

    需要注意的是这里我们是改变的第0,2,4列的宽度,因为第1,3列是GridSplitter。这样我们不仅可以在界面上用鼠标拖动GridSplitter动态改变每一栏的大小,还能在代码中实现我们想要的效果。

 

发表评论
用户名: 匿名