1. 程式人生 > >小麥子-WPF學習系列3:一個完整的介面案例

小麥子-WPF學習系列3:一個完整的介面案例

    這次看一個大點的程式碼,需要有Grid面板知識,視訊裡面有,這裡對程式碼做個解析。
    ![先看介面,一個串列埠除錯軟體](https://img-blog.csdn.net/20171128235929942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjk3MDE3MTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
<Window x:Class="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> <RowDefinition Height="*"/> <RowDefinition Height="118"/> </Grid
.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="122" MinWidth="122" MaxWidth="200"/> <ColumnDefinition Width="5"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid
> <Grid.RowDefinitions> <RowDefinition Height="157"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="26*"/> <ColumnDefinition Width="35*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="10*"/> <RowDefinition Height="20*"/> <RowDefinition Height="20*"/> <RowDefinition Height="20*"/> <RowDefinition Height="20*"/> <RowDefinition Height="20*"/> <RowDefinition Height="32*"/> </Grid.RowDefinitions> <TextBlock Text="串 口" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="1" Height="16" Width="35"/> <TextBlock Text="波特率" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="2" Height="16" Width="36"/> <TextBlock Text="檢驗位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="3" Height="16" Width="36"/> <TextBlock Text="資料位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,3" Grid.Row="4" Height="16" Width="36"/> <TextBlock Text="停止位" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,3,10,4" Grid.Row="5" Height="16" Width="36"/> <ComboBox Name="cbPortName" FontSize="10" Grid.Column="1" Grid.Row="1" Margin="2,1,10,1"/> <ComboBox Name="cbBaudRate" FontSize="10" Grid.Column="1" Grid.Row="2" Margin="2,1,10,1"/> <ComboBox Name="cbParity" FontSize="10" Grid.Column="1" Grid.Row="3" Margin="2,1,10,1"/> <ComboBox Name="cbDataBits" FontSize="10" Grid.Column="1" Grid.Row="4" Margin="2,1,10,1"/> <ComboBox Name="cbStopBits" FontSize="10" Grid.Column="1" Grid.Row="5" Margin="2,1,10,1"/> <Ellipse Name="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> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="25"/> <RowDefinition Height="*"/> </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> <CheckBox Visibility="Hidden" Name="ckAutoClear" Content="自動清空" Margin="10,2,0,0" Grid.Row="2" Height="16" VerticalAlignment="Top"/> <CheckBox Name="ck16View" Content="16進位制顯示" Margin="10,2,0,2" Grid.Row="3" Click="ck16View_Click"/> </Grid> </Grid> <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" Width="5"/> <Grid Name="grdSend" Grid.Row="1" Grid.ColumnSpan="3"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="32"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="192"/> <ColumnDefinition Width="*"/> </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"/> <CheckBox Name="ck16Send" Content="16進位制傳送" Margin="10,5,100,0" VerticalAlignment="Top" Click="ck16Send_Click"/> <CheckBox Name="ckAsciiView" Content="顯示Ascii碼" Margin="10,22,90,0" VerticalAlignment="Top" Click="ckAsciiView_Click"/> <CheckBox Name="ckAdvantechCmd" Content="加回車符傳送" Margin="10,39,90,0" VerticalAlignment="Top" Click="ckAdvantechCmd_Click"/> <CheckBox Name="ckAutoSend" Content="自動傳送" Margin="10,56,100,0" VerticalAlignment="Top" Click="ckAutoSend_Click"/> <TextBlock Name="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> <StatusBar Name="statusBar1" Height="20" Grid.Row="3" Grid.ColumnSpan="3" VerticalAlignment="Bottom" Margin="0"> <TextBlock Text="狀態:"></TextBlock> <TextBlock Name="tbComState" Text="0" MinWidth="150"></TextBlock> <Separator Background="#FFC9C6C6"/> <TextBlock></TextBlock> <TextBlock Text="接收:"></TextBlock> <TextBlock Name="txtRecive" Text="0" MinWidth="100"></TextBlock> <Separator Background="#FFC9C6C6"/> <TextBlock Text="傳送:"></TextBlock> <TextBlock Name="txtSend" Text="0"></TextBlock> </StatusBar> <Separator Height="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"/> <Border Name="bdExpend" BorderBrush="#FFD6D6D6" BorderThickness="1" Margin="1,1,1,1" Grid.Column="2" HorizontalAlignment="Right" Width="200"> <Grid Name="gdExpend"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10*"/> <ColumnDefinition Width="67*"/> <ColumnDefinition Width="23*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="30"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <TextBlock Text="Hex" Grid.ColumnSpan="2" VerticalAlignment="Bottom"/> <TextBlock Text="傳送字串" Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> <TextBlock Text="傳送" Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> </Grid> </Border> </Grid> </Grid> </Window>