小麦子-WPF学习系列3:一个完整的界面案例

    这次看一个大点的代码,需要有Grid面板知识,视频里面有,这里对代码做个解析。
    ![先看界面,一个串口调试软件](https://img-blog.csdn.net/20171128235929942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjk3MDE3MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
"Wpf串口通信程序.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="501.1" Width="733"  >     
    <Grid>
        <Grid >
            <Grid.RowDefinitions>
                "*"/>
                "118"/>
            Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                "122"  MinWidth="122" MaxWidth="200"/>
                "5"/>
                "*"/>
            Grid.ColumnDefinitions>
            <Grid>
                <Grid.RowDefinitions>
                    "157"/>
                    "*"/>
                Grid.RowDefinitions>
                <Grid>
                    <Grid.ColumnDefinitions>
                        "26*"/>
                        "35*"/>
                    Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        "10*"/>
                        "20*"/>
                        "20*"/>
                        "20*"/>
                        "20*"/>
                        "20*"/>
                        "32*"/>
                    Grid.RowDefinitions>
                    Text="串   口" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="1" Height="16" Width="35"/>
                    Text="波特率" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="2" Height="16" Width="36"/>
                    Text="检验位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="3" Height="16" Width="36"/>
                    Text="数据位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="4" Height="16" Width="36"/>
                    Text="停止位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,4" Grid.Row="5" Height="16" Width="36"/>
                    "cbPortName" FontSize="10" Grid.Column="1" Grid.Row="1" Margin="2,1,10,1"/>
                    "cbBaudRate" FontSize="10" Grid.Column="1" Grid.Row="2" Margin="2,1,10,1"/>
                    "cbParity" FontSize="10" Grid.Column="1" Grid.Row="3" Margin="2,1,10,1"/>
                    "cbDataBits" FontSize="10" Grid.Column="1" Grid.Row="4" Margin="2,1,10,1"/>
                    "cbStopBits" FontSize="10" Grid.Column="1" Grid.Row="5" Margin="2,1,10,1"/>
                    "comState" Style="{StaticResource EllipseStyleRed}" Grid.Row="6" HorizontalAlignment="Left"
                             Width="20" Margin="15,8,0,7"/>
                    <Button Name="btOpenCom" Content="打开串口" Grid.Column="0" Margin="50,6,10,6" Grid.Row="6" Grid.ColumnSpan="2"
                            Click="btOpenCom_Click" />
                Grid>
                <Grid Grid.Row="1">
                    <Grid.RowDefinitions>
                        "25"/>
                        "25"/>
                        "25"/>
                        "25"/>
                        "25"/>
                        "25"/>
                        "25"/>
                        "*"/>
                    Grid.RowDefinitions>

                    <Button Name="btClearView" Content="清空显示" Margin="10,5,53,0" Grid.Row="0" Click="btClearView_Click">Button>
                    <Button Visibility="Hidden" Content="停止显示" Grid.Row="1" Margin="10,0,53,0">Button>
                    <Button Visibility="Hidden" Content="保存显示" Grid.Row="4" Margin="10,0,53,0">Button>
                    <Button Visibility="Hidden" Content="更改" Grid.Row="4" Margin="74,0,10,0">Button>
                    <Button Visibility="Hidden" Content="搜索空闲串口" Grid.Row="6" Margin="10,2,30,2">Button>
                    "Hidden" Name="ckAutoClear" Content="自动清空" Margin="10,2,0,0" Grid.Row="2" Height="16" VerticalAlignment="Top"/>
                    "ck16View" Content="16进制显示" Margin="10,2,0,2" Grid.Row="3" Click="ck16View_Click"/>
                Grid>
            Grid>
            Grid.Column="1" HorizontalAlignment="Stretch" Width="5"/>
            <Grid Name="grdSend" Grid.Row="1" Grid.ColumnSpan="3">
                <Grid.RowDefinitions>
                    
                    "32"/>
                Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    "192"/>
                    "*"/>
                Grid.ColumnDefinitions>
                <TextBox TextWrapping="Wrap" Name="tbSend" Grid.Column="1" Margin="3,0,0,0" AcceptsReturn="True" TextChanged="tbSend_TextChanged" Grid.RowSpan="2">TextBox>
                <Rectangle Fill="#FFACACAC" Width="1" HorizontalAlignment="Right" Grid.RowSpan="2">Rectangle>
                <Button Name="btSend" Content="发送" Margin="118,7,6,55" Click="btSend_Click" VerticalContentAlignment="Top"/>
                <Button Name="btExpend" Content="扩展" Margin="118,37,6,25" VerticalContentAlignment="Top" Click="btExpend_Click"/>
                "ck16Send" Content="16进制发送"  Margin="10,5,100,0" VerticalAlignment="Top" Click="ck16Send_Click"/>
                "ckAsciiView" Content="显示Ascii码"  Margin="10,22,90,0" VerticalAlignment="Top" Click="ckAsciiView_Click"/>
                "ckAdvantechCmd" Content="加回车符发送"  Margin="10,39,90,0" VerticalAlignment="Top" Click="ckAdvantechCmd_Click"/>
                "ckAutoSend" Content="自动发送"  Margin="10,56,100,0" VerticalAlignment="Top" Click="ckAutoSend_Click"/>
                "tbkIntervalTime" HorizontalAlignment="Left" Margin="33,74,0,0" TextWrapping="Wrap" Text="间隔(s)" VerticalAlignment="Top" Grid.RowSpan="2"/>
                <TextBox Name="tbIntervalTime" HorizontalAlignment="Left" Margin="83,72,0,0" Text="0" VerticalAlignment="Top" Width="50" TextChanged="tbIntervalTime_TextChanged" Grid.RowSpan="2"/>
            Grid>
            <TextBox VerticalScrollBarVisibility="Auto" IsReadOnly="True" Name="tbReceive" Grid.Column="2" Margin="0,1,0,0" TextWrapping="Wrap">TextBox>
            "statusBar1"  Height="20" Grid.Row="3" Grid.ColumnSpan="3" VerticalAlignment="Bottom" Margin="0">
                Text="状态:">
                "tbComState" Text="0" MinWidth="150">
                Background="#FFC9C6C6"/>
                
                Text="接收:">
                "txtRecive" Text="0" MinWidth="100">
                Background="#FFC9C6C6"/>
                Text="发送:">
                "txtSend" Text="0">
            
            "1" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,0,0,20" VerticalAlignment="Bottom"/>
            <Rectangle Fill="#FFACACAC" Grid.Row="1" Grid.ColumnSpan="3" VerticalAlignment="Top"  Height="1"/>
            <Rectangle Fill="#FFACACAC" Grid.Column="1" Width="1" HorizontalAlignment="Left"/>
            "bdExpend" BorderBrush="#FFD6D6D6" BorderThickness="1" Margin="1,1,1,1"
                Grid.Column="2" HorizontalAlignment="Right" Width="200">
                <Grid Name="gdExpend">
                    <Grid.ColumnDefinitions>
                        "10*"/>
                        "67*"/>
                        "23*"/>
                    Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "30"/>
                        "*"/>
                    Grid.RowDefinitions>
                    Text="Hex" Grid.ColumnSpan="2" VerticalAlignment="Bottom"/>
                    Text="发送字符串" Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
                    Text="发送" Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
                Grid>
            
        Grid>
    Grid>

你可能感兴趣的:(WPF)