Fork me on GitHub

DockPanel

 

DockPanel是一个停靠的模板。在下面的例子中,主要是有一个myDP.LastChildFill属性问题,这个属性自定义状态下是Truerect2就是自动充满余下的部分,当为False时,rect2为定义的最小值。

还有DockPanel.SetDock(rect1, Dock.Top)是设置rect1myDP这个DockPanel下的停靠位置。

XAML代码:
<Page

       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

       x:Class="Controls.DockPaneltest"

       x:Name="Page"

       WindowTitle="Page"

       FlowDirection="LeftToRight"

       Width="640" Height="480"

       WindowWidth="640" WindowHeight="480">

<DockPanel Background="White">

    <TextBlock FontSize="16" FontWeight="Bold" DockPanel.Dock="Top" Margin="0,0,0,10">Dock Property Sample</TextBlock>

    <TextBlock DockPanel.Dock="Top" Margin="0,0,0,10" TextWrapping="Wrap">

      Click the buttons below to manipulate the associated Dock properties

      of the rectangle elements below. This example is designed to help the user understand layout behavior in

      a DockPanel element.

    </TextBlock>

    <TextBlock DockPanel.Dock="Top" Name="Txt1">The Dock property of the LightCoral Rectangle is set to Left</TextBlock>

    <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="0,0,0,10">

      <Button Click="OnClick1" Background="LightCoral">Dock = "Left"</Button>

      <Button Click="OnClick2" Background="LightCoral">Dock = "Right"</Button>

      <Button Click="OnClick3" Background="LightCoral">Dock = "Top"</Button>

      <Button Click="OnClick4" Background="LightCoral">Dock = "Bottom"</Button>

    </StackPanel>

 

    <TextBlock DockPanel.Dock="Top" Name="Txt2">The Dock property of the LightSkyBlue Rectangle is set to Right</TextBlock>

 

    <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="0,0,0,10">

      <Button Click="OnClick5" Background="LightSkyBlue" Foreground="White">Dock = "Left"</Button>

      <Button Click="OnClick6" Background="LightSkyBlue" Foreground="White">Dock = "Right"</Button>

      <Button Click="OnClick7" Background="LightSkyBlue" Foreground="White">Dock = "Top"</Button>

      <Button Click="OnClick8" Background="LightSkyBlue" Foreground="White">Dock = "Bottom"</Button>

    </StackPanel>

 

    <TextBlock DockPanel.Dock="Top" Name="Txt3">The LastChildFill property is set to True (default).</TextBlock>

    <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="0,0,0,10">

      <Button Click="OnClick9" Background="White">LastChildDock="True"</Button>

      <Button Click="OnClick10" Background="White">LastChildDock="False"</Button>

    </StackPanel>

 

    <Border Background="LightGoldenRodYellow" BorderBrush="Black" BorderThickness="1">

      <DockPanel Name="myDP">

        <Rectangle Name="rect1" MinWidth="200" MinHeight="200" Stroke="Black" Fill="LightCoral" />

        <Rectangle Name="rect2" MinWidth="200" MinHeight="200" Stroke="Black" Fill="LightSkyBlue" />

      </DockPanel>

    </Border>

 </DockPanel>

</Page>

 CS代码:

public void OnClick1(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect1, Dock.Left);

            Txt1.Text = "The Dock Property of the LightCoral Rectangle is set to Left";

        }

 

        public void OnClick2(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect1, Dock.Right);

            Txt1.Text = "The Dock Property of the LightCoral Rectangle is set to Right";

        }

 

        public void OnClick3(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect1, Dock.Top);

            Txt1.Text = "The Dock Property of the LightCoral Rectangle is set to Top";

        }

 

        public void OnClick4(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect1, Dock.Bottom);

            Txt1.Text = "The Dock Property of the LightCoral Rectangle is set to Bottom";

        }

 

        public void OnClick5(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect2, Dock.Left);

            Txt2.Text = "The Dock Property of the LightSkyBlue Rectangle is set to Left";

        }

 

        public void OnClick6(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect2, Dock.Right);

            Txt2.Text = "The Dock Property of the LightSkyBlue Rectangle is set to Right";

        }

 

        public void OnClick7(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect2, Dock.Top);

            Txt2.Text = "The Dock Property of the LightSkyBlue Rectangle is set to Top";

        }

 

        public void OnClick8(object sender, RoutedEventArgs e)

        {

            DockPanel.SetDock(rect2, Dock.Bottom);

            Txt2.Text = "The Dock Property of the LightSkyBlue Rectangle is set to Bottom";

        }

 

        public void OnClick9(object sender, RoutedEventArgs e)

        {

            myDP.LastChildFill = true;

            Txt3.Text = "The LastChildFill property is set to True (default)";

        }

 

        public void OnClick10(object sender, RoutedEventArgs e)

        {

            myDP.LastChildFill = false;

            Txt3.Text = "The LastChildFill property is set to True False";

        }
本文参考MSDN组织。

posted @ 2007-03-20 16:04  桂素伟  阅读(1590)  评论(0编辑  收藏  举报