修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
5.36 KiB
NewLife.JT808
<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="Client.Avalonia.Views.ParserView">
  <Grid RowDefinitions="*,Auto" Margin="12">
    <!-- 主区域:上输入,下结果 -->
    <Grid Grid.Row="0" RowDefinitions="2*,3*">
      <!-- 上方输入区 -->
      <Border Grid.Row="0"
              BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
              BorderThickness="1" CornerRadius="6" Padding="14">
        <Grid RowDefinitions="Auto,*,Auto">
          <Grid ColumnDefinitions="6,*">
            <Border Grid.Column="0" Background="{DynamicResource SystemAccentColor}" CornerRadius="3" />
            <Label Grid.Column="1" FontWeight="Bold" FontSize="14" Margin="8,0,0,0"
                   VerticalAlignment="Center">十六进制报文</Label>
          </Grid>
          <TextBox Grid.Row="1"
                   Text="{Binding HexInput}"
                   AcceptsReturn="True"
                   Watermark="粘贴十六进制报文(支持空格、0x前缀、换行)&#x0a;例如: 7E 02 00 00 2A 01 38 00 01 23 45 67 89 00 07 ..."
                   FontFamily="Consolas"
                   FontSize="13" />
          <StackPanel Grid.Row="2" Orientation="Horizontal" Spacing="10" Margin="0,6,0,0">
            <Button Content="🔍 解码" Command="{Binding DecodeCommand}"
                    Background="{DynamicResource SystemAccentColor}" Foreground="White" Padding="20,6" />
            <Button Content="清空" Command="{Binding ClearCommand}" Padding="16,6" />
            <Label Content="{Binding StatusText}" VerticalAlignment="Center" FontSize="12" Foreground="Gray" />
          </StackPanel>
        </Grid>
      </Border>

      <!-- 下方结果区 -->
      <Border Grid.Row="1"
              BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
              BorderThickness="1" CornerRadius="6" Padding="14"
              IsVisible="{Binding HasResult}">
        <Grid RowDefinitions="Auto,*">
          <Grid ColumnDefinitions="6,*">
            <Border Grid.Column="0" Background="{DynamicResource SystemAccentColor}" CornerRadius="3" />
            <Label Grid.Column="1" FontWeight="Bold" FontSize="14" Margin="8,0,0,0"
                   VerticalAlignment="Center">解析结果</Label>
          </Grid>

          <TabControl Grid.Row="1">
            <TabItem Header="基本信息">
              <ScrollViewer>
                <StackPanel Spacing="8" Margin="12">
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0">消息ID:</Label>
                    <Label Grid.Column="1" Content="{Binding ResultKind}" />
                  </Grid>
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0">消息名称:</Label>
                    <Label Grid.Column="1" Content="{Binding ResultKindName}" />
                  </Grid>
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0">终端手机号:</Label>
                    <Label Grid.Column="1" Content="{Binding ResultMobile}" />
                  </Grid>
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0">流水号:</Label>
                    <Label Grid.Column="1" Content="{Binding ResultSequence}" />
                  </Grid>
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0">协议版本:</Label>
                    <Label Grid.Column="1" Content="{Binding ResultVersion}" />
                  </Grid>
                  <Grid ColumnDefinitions="110,*">
                    <Label Grid.Column="0" FontWeight="Bold" HorizontalAlignment="Right" Margin="0,0,12,0" VerticalAlignment="Top">字段列表:</Label>
                    <ScrollViewer Grid.Column="1" MaxHeight="100">
                      <TextBlock Text="{Binding ResultFieldList}" FontFamily="Consolas" FontSize="11" />
                    </ScrollViewer>
                  </Grid>
                </StackPanel>
              </ScrollViewer>
            </TabItem>
            <TabItem Header="JSON 消息体">
              <ScrollViewer>
                <TextBlock Text="{Binding ResultBody}"
                           FontFamily="Consolas" FontSize="11"
                           TextWrapping="Wrap" Margin="8" />
              </ScrollViewer>
            </TabItem>
            <TabItem Header="十六进制负载">
              <ScrollViewer>
                <TextBlock Text="{Binding ResultHex}"
                           FontFamily="Consolas" FontSize="11"
                           TextWrapping="Wrap" Margin="8" />
              </ScrollViewer>
            </TabItem>
            <TabItem Header="原始报文">
              <ScrollViewer>
                <TextBlock Text="{Binding ResultRaw}"
                           FontFamily="Consolas" FontSize="11"
                           TextWrapping="Wrap" Margin="8" />
              </ScrollViewer>
            </TabItem>
          </TabControl>
        </Grid>
      </Border>
    </Grid>
  </Grid>
</UserControl>