C#基础控件入门学习

2019-08-03  本文已影响0人  玉米须须

创建用户界面时,按照位置和大小排列控件以形成布局。 任何布局的一项关键要求都是适应窗口大小和显示设置的变化。 WPF 为你提供一流的可扩展布局系统,而不强制你编写代码以适应这些情况下的布局。
布局系统的基础是相对定位,这提高了适应不断变化的窗口和显示条件的能力。 此外,该布局系统还可管理控件之间的协商以确定布局。 协商是一个两步过程:首先,控件将需要的位置和大小告知父级;其次,父级将控件可以有的空间告知控件。

该布局系统通过基 WPF 类公开给子控件。 对于通用的布局(如网格、堆叠和停靠),WPF 包括若干布局控件:

*   [Canvas](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.canvas):子控件提供其自己的布局。

*   [DockPanel](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.dockpanel):子控件与面板的边缘对齐。

*   [Grid](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.grid):子控件按行和列放置。

*   [StackPanel](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.stackpanel):子控件垂直或水平堆叠。

*   [VirtualizingStackPanel](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.virtualizingstackpanel):子控件在水平或垂直的行上进行虚拟化和排列。

*   [WrapPanel](https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.wrappanel):子控件按从左到右的顺序放置,在当前行上的控件超出允许的空间时,换行到下一行。

XAML

复制
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.LayoutWindow"
    Title="Layout with the DockPanel" Height="143" Width="319">
  
  <!--DockPanel to layout four text boxes--> 
  <DockPanel>
    <TextBox DockPanel.Dock="Top">Dock = "Top"</TextBox>
    <TextBox DockPanel.Dock="Bottom">Dock = "Bottom"</TextBox>
    <TextBox DockPanel.Dock="Left">Dock = "Left"</TextBox>
    <TextBox Background="White">This TextBox "fills" the remaining space.</TextBox>
  </DockPanel>

</Window>

DockPanel
是用来把子元素靠上下左右的一个布局

<Grid>
            <DockPanel>
                <Menu DockPanel.Dock="Top">
                    <MenuItem Header="文件">
                        <MenuItem Header="打开"></MenuItem>
                    </MenuItem>
                    <MenuItem Header="编辑">
                        <MenuItem Header="复制"></MenuItem>
                    </MenuItem>
                </Menu>
                <TextBox DockPanel.Dock="Bottom"></TextBox>
                <Button Content="left" DockPanel.Dock="Left"></Button>
                <Button Content="right" DockPanel.Dock="Right"></Button>
            </DockPanel>
        </Grid>

最终运行的结果

上一篇 下一篇

猜你喜欢

热点阅读