综合

WPF/C#学习笔记.1:WPF中的布局TabControl,G

2016-04-09  本文已影响2646人  ThinkSpark

WPF/C#学习笔记.1

WPF中的布局TabControl,Grid与GridSpliter等


WPF布局原则

由于WPF窗体中只能包含单个元素。为了在WPF窗体中放置多个元素,需要在窗体中布置一个容器(TablControl,StackPanel,Grid等,其中Grid是WPF中功能最强大的布局控件),然后在这个容器中添加别的元素。

核心布局面板

容器修饰与封装


WPF代码实例

<Window x:Class="PowerFlight.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:PowerFlight"
        mc:Ignorable="d"
        Title="PowerFlight" Height="768" Width="1366" Icon="Image/Airplane.ico">
    <TabControl TabStripPlacement="Left" Margin="3" >
        <TabItem Header="Simulator">
            <Grid ShowGridLines="False" >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="auto" /> 
                    <ColumnDefinition Width="2*" />
                    <ColumnDefinition Width="auto" />
                    <ColumnDefinition Width="8*" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="2*"/>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="3*"/>
                </Grid.RowDefinitions>
                
<!-- Element in Grid.Column="0" -->
                <Border Grid.Column="0" Grid.Row="0" Grid.RowSpan="3" Margin="3" 
                        BorderBrush="#FFACACAC" BorderThickness="1" >
                    <TextBlock Margin ="3" FontSize="20" Text="This is auto width"/>
                </Border>
<!-- End of Element in Grid.Column="0" -->
                
<!-- Element in Grid.Column="1" -->
                <Border Grid.Column="1" Grid.Row="0" Margin="0,3,0,0" 
                        BorderBrush="#FFACACAC" BorderThickness="1" >
                    <DockPanel LastChildFill="True">
                        <Label DockPanel.Dock="Top" FontSize="20" Content="This 2* weight"/>
                        <TextBlock Padding="2" Margin="3" TextWrapping="Wrap">
                            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                        </TextBlock>
                    </DockPanel>
                </Border>

                <GridSplitter Grid.Column="1" Grid.Row="1" Height="3"                              
                              VerticalAlignment="Center" HorizontalAlignment="Stretch"
                              ResizeDirection="Rows" Opacity="0" />

                <Border  Grid.Column="1" Grid.Row="2"  Margin="0,0,0,3" 
                         BorderBrush="#FFACACAC" BorderThickness="1" >
                    <ScrollViewer HorizontalScrollBarVisibility="Auto"
                                  VerticalScrollBarVisibility="Auto">
                        <StackPanel Margin="3,6,3,6" >
                            <Label Content="This 2* weight"/>
                            <TextBlock Margin="3" FontSize="20" >
                            xxxxxxxxxxxxxxxxxxxxxxxxxxxx
                            </TextBlock>
                        </StackPanel>
                    </ScrollViewer>
                </Border>
<!-- End of Element in Grid.Column="1" -->
                
                <GridSplitter Grid.Column="2" Grid.RowSpan="3" Width="3"
                              VerticalAlignment="Stretch" HorizontalAlignment="Center"
                              Opacity="0"/>

<!-- Element in Grid.Column="3" -->
                <Border Grid.Column="4" Grid.Row="0" Grid.RowSpan="3"  Margin="0,3,3,3" 
                        BorderBrush="#FFACACAC" BorderThickness="1" >
                    <TextBlock FontSize="20" Text="This 8* weight"/>
                </Border>
<!-- End of Element in Grid.Column="3" -->
                
            </Grid>
        </TabItem>
<!-- End Of TabItem Heardear="Simulator" -->
        
        <TabItem Header="Data">
        </TabItem>
        
    </TabControl>
</Window>

布局结果

Tips

通用属性

TabControl

TabItem

Grid

Grid子元素属性

GridSplitter

DockPanel

DockPanel子元素属性。

ScrollViewer

TextBlock

上一篇 下一篇

猜你喜欢

热点阅读