Newer
Older
Correlator / Correlator / Views / MainWindow.xaml
<Window
    x:Class="Correlator.Views.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
    xmlns:cvt="clr-namespace:Correlator.Converter"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:hc="https://handyorg.github.io/handycontrol"
    xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:vm="clr-namespace:Correlator.ViewModels"
    x:Name="TargetWindow"
    Title="相关仪"
    MinWidth="1366"
    MinHeight="768"
    d:DataContext="{d:DesignInstance Type=vm:MainWindowViewModel}"
    d:DesignHeight="768"
    d:DesignWidth="1366"
    Background="#EBECF0"
    WindowStartupLocation="CenterScreen"
    WindowState="Maximized"
    WindowStyle="None"
    mc:Ignorable="d">

    <b:Interaction.Triggers>
        <b:EventTrigger EventName="Loaded">
            <b:InvokeCommandAction Command="{Binding WindowLoadedCommand}" CommandParameter="{Binding ElementName=TargetWindow}" />
        </b:EventTrigger>
    </b:Interaction.Triggers>

    <Window.Resources>
        <cvt:BatteryColorConverter x:Key="BatteryConverter" />
        <cvt:SignalIntensityConverter x:Key="SignalImageConverter" />
        <cvt:PipeLineValueConverter x:Key="PipeLineValueConverter" />
        <cvt:FrequencyRangeConverter x:Key="FrequencyRangeConverter" />
    </Window.Resources>

    <DockPanel LastChildFill="True">
        <!--  顶部功能区  -->
        <Grid Height="55" DockPanel.Dock="Top">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>

            <StackPanel Grid.Column="0" Orientation="Horizontal">
                <Button
                    Height="40"
                    Margin="10,0"
                    Command="{Binding CloseWindowCommand}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe6f1;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="退出" />
                    </StackPanel>
                </Button>

                <Button
                    x:Name="FolderButton"
                    Height="40"
                    Command="{Binding OpenFolderCommand}"
                    CommandParameter="{Binding ElementName=FolderButtonPop}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe67e;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="文件" />
                    </StackPanel>
                </Button>

                <Button
                    Height="40"
                    Margin="10,0"
                    Command="{Binding OpenListenAudioCommand}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe689;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="听音" />
                    </StackPanel>
                </Button>

                <Button
                    Height="40"
                    Command="{Binding DetectNoiseCommand}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe69f;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="调查" />
                    </StackPanel>
                </Button>

                <Button
                    Height="40"
                    Margin="10,0"
                    Command="{Binding ImportDataCommand}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe6cf;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="导入" />
                    </StackPanel>
                </Button>

                <Button Height="40" Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe6d0;" />
                        </Border>

                        <CheckBox
                            x:Name="ShowCrossLineCheckBox"
                            Margin="10,0"
                            VerticalAlignment="Center"
                            Content="辅助线"
                            FontSize="16" />
                    </StackPanel>
                </Button>

                <Button
                    x:Name="SettingsButton"
                    Height="40"
                    Margin="10,0"
                    Command="{Binding SettingsCommand}"
                    CommandParameter="{Binding ElementName=SettingsButtonPop}"
                    Style="{StaticResource MainMenuButtonStyle}">
                    <StackPanel Margin="8,5" Orientation="Horizontal">
                        <Border
                            Width="30"
                            Height="30"
                            Background="{StaticResource MainThemeBrush}"
                            CornerRadius="15">
                            <TextBlock
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="20"
                                Foreground="White"
                                Text="&#xe6ce;" />
                        </Border>

                        <TextBlock
                            Margin="10,0"
                            VerticalAlignment="Center"
                            FontSize="16"
                            Text="设置" />
                    </StackPanel>
                </Button>

                <!--  鼠标左键菜单  不用相对位置是因为在不同设备上可能会出现位置错乱的问题  -->
                <Popup
                    x:Name="FolderButtonPop"
                    AllowsTransparency="True"
                    HorizontalOffset="118"
                    Placement="Absolute"
                    PlacementTarget="{Binding ElementName=FolderButton}"
                    StaysOpen="False"
                    VerticalOffset="53">
                    <Border
                        Margin="0,0,3,3"
                        Background="White"
                        BorderThickness="1"
                        CornerRadius="5">
                        <Border.Effect>
                            <DropShadowEffect
                                BlurRadius="5"
                                Direction="0"
                                Opacity="0.5"
                                ShadowDepth="0"
                                Color="Blue" />
                        </Border.Effect>
                        <StackPanel>
                            <Button
                                Width="205"
                                Height="40"
                                HorizontalContentAlignment="Left"
                                hc:BorderElement.CornerRadius="5 5 0 0"
                                BorderThickness="0"
                                Command="{Binding OpenImageFileCommand}"
                                CommandParameter="{Binding ElementName=FolderButtonPop}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock
                                        Margin="0,0,10,0"
                                        VerticalAlignment="Center"
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Text="&#xe6d5;" />
                                    <TextBlock
                                        VerticalAlignment="Center"
                                        FontSize="16"
                                        Text="图片" />
                                </StackPanel>
                            </Button>

                            <Button
                                Width="205"
                                Height="40"
                                HorizontalContentAlignment="Left"
                                hc:BorderElement.CornerRadius="0 0 5 5"
                                BorderThickness="0"
                                Command="{Binding OpenAudioFileCommand}"
                                CommandParameter="{Binding ElementName=FolderButtonPop}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock
                                        Margin="0,0,10,0"
                                        HorizontalAlignment="Center"
                                        VerticalAlignment="Center"
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Text="&#xe6a9;" />
                                    <TextBlock
                                        VerticalAlignment="Center"
                                        FontSize="16"
                                        Text="音频" />
                                </StackPanel>
                            </Button>
                        </StackPanel>
                    </Border>
                </Popup>

                <Popup
                    x:Name="SettingsButtonPop"
                    AllowsTransparency="True"
                    HorizontalOffset="695"
                    Placement="Absolute"
                    PlacementTarget="{Binding ElementName=SettingsButton}"
                    StaysOpen="False"
                    VerticalOffset="53">
                    <Border
                        Margin="0,0,3,3"
                        Background="White"
                        BorderThickness="1"
                        CornerRadius="5">
                        <Border.Effect>
                            <DropShadowEffect
                                BlurRadius="5"
                                Direction="0"
                                Opacity="0.5"
                                ShadowDepth="0"
                                Color="Blue" />
                        </Border.Effect>
                        <StackPanel>
                            <Button
                                Width="205"
                                Height="40"
                                HorizontalContentAlignment="Left"
                                hc:BorderElement.CornerRadius="5 5 0 0"
                                BorderThickness="0"
                                Command="{Binding SoundSpeedCommand}"
                                CommandParameter="{Binding ElementName=SettingsButtonPop}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock
                                        Margin="0,0,10,0"
                                        VerticalAlignment="Center"
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Text="&#xe66b;" />
                                    <TextBlock
                                        VerticalAlignment="Center"
                                        FontSize="16"
                                        Text="声速调整" />
                                </StackPanel>
                            </Button>

                            <Button
                                Width="205"
                                Height="40"
                                HorizontalContentAlignment="Left"
                                hc:BorderElement.CornerRadius="0 0 5 5"
                                BorderThickness="0"
                                Command="{Binding ShowApplicationInfoCommand}"
                                CommandParameter="{Binding ElementName=SettingsButtonPop}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock
                                        Margin="0,0,10,0"
                                        HorizontalAlignment="Center"
                                        VerticalAlignment="Center"
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Text="&#xe6b8;" />
                                    <TextBlock
                                        VerticalAlignment="Center"
                                        FontSize="16"
                                        Text="软件信息" />
                                </StackPanel>
                            </Button>
                        </StackPanel>
                    </Border>
                </Popup>
            </StackPanel>

            <TextBlock
                Grid.Column="1"
                Margin="10,0"
                VerticalAlignment="Center"
                FontSize="22"
                Foreground="{StaticResource MainThemeBrush}"
                Text="{Binding CurrentTime}" />
        </Grid>

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="350" />
            </Grid.ColumnDefinitions>

            <!--  左侧展示区  -->
            <Grid Grid.Column="0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>

                <!--  计算结果柱状图展示区  -->
                <Border
                    Grid.Row="0"
                    Margin="10,0,10,10"
                    Background="White"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>

                        <Image
                            Grid.Column="0"
                            Width="38"
                            Height="82"
                            Margin="10,0,10,10"
                            VerticalAlignment="Bottom"
                            Source="{Binding RedTransmitterSignal, ConverterParameter=0, Converter={StaticResource SignalImageConverter}}" />

                        <WpfPlot x:Name="ScottplotView" Grid.Column="1" />

                        <Image
                            Grid.Column="2"
                            Width="38"
                            Height="82"
                            Margin="10,0,10,10"
                            VerticalAlignment="Bottom"
                            Source="{Binding BlueTransmitterSignal, ConverterParameter=1, Converter={StaticResource SignalImageConverter}}" />
                    </Grid>
                </Border>

                <!--  计算结果数据展示区  -->
                <Grid Grid.Row="1">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>

                    <Border
                        Grid.Column="0"
                        Margin="10,0,10,10"
                        BorderBrush="LightGray"
                        BorderThickness="1">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <Grid Grid.Row="0" Margin="0,10,0,5">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition />
                                </Grid.ColumnDefinitions>

                                <TextBlock
                                    Grid.Column="0"
                                    Margin="10,0"
                                    VerticalAlignment="Center"
                                    FontFamily="/Correlator;component/Fonts/#iconfont"
                                    FontSize="24"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="&#xe661;" />

                                <TextBlock
                                    Grid.Column="1"
                                    VerticalAlignment="Center"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="计算结果" />

                                <Button
                                    Grid.Column="2"
                                    Margin="0,0,10,0"
                                    HorizontalAlignment="Right"
                                    VerticalAlignment="Center"
                                    Command="{Binding ShowWaveCommand}"
                                    Content="查看波形"
                                    FontSize="14"
                                    Foreground="{StaticResource MainThemeBrush}" />
                            </Grid>
                            <DockPanel Grid.Row="1" VerticalAlignment="Center">
                                <TextBlock
                                    Width="80"
                                    Margin="45,0,0,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="频段区间" />
                                <TextBlock
                                    Margin="0,0,10,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}">
                                    <TextBlock.Text>
                                        <MultiBinding Converter="{StaticResource FrequencyRangeConverter}">
                                            <Binding ElementName="LowFrequencyTextBox" Path="Text" />
                                            <Binding ElementName="HighFrequencyTextBox" Path="Text" />
                                        </MultiBinding>
                                    </TextBlock.Text>
                                </TextBlock>
                            </DockPanel>
                            <DockPanel Grid.Row="2" VerticalAlignment="Center">
                                <TextBlock
                                    Width="80"
                                    Margin="45,0,0,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="信噪比" />
                                <TextBlock
                                    Margin="0,0,10,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="{Binding Snr}" />
                            </DockPanel>
                            <DockPanel Grid.Row="3" VerticalAlignment="Center">
                                <TextBlock
                                    Width="80"
                                    Margin="45,0,0,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="过滤器" />
                                <TextBlock
                                    Margin="0,0,10,0"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="{Binding FilterValue}" />
                            </DockPanel>
                        </Grid>
                    </Border>

                    <!--  计时以及发射机状态、噪声值展示区  -->
                    <Border
                        Grid.Column="1"
                        Margin="0,0,10,10"
                        BorderBrush="LightGray"
                        BorderThickness="1">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="1" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="1" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>

                            <Grid Grid.Row="0" Height="40">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <StackPanel
                                    Grid.Column="0"
                                    Margin="10,0"
                                    HorizontalAlignment="Left"
                                    VerticalAlignment="Center"
                                    Orientation="Horizontal">
                                    <TextBlock
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Foreground="{StaticResource MainThemeBrush}"
                                        Text="&#xe69e;" />
                                    <TextBlock
                                        Margin="10,2,0,0"
                                        FontSize="18"
                                        Foreground="{StaticResource MainThemeBrush}">
                                        <TextBlock.Text>
                                            <MultiBinding Converter="{StaticResource PipeLineValueConverter}">
                                                <Binding ElementName="PipeNameComboBox" Path="Text" />
                                                <Binding ElementName="PipeDiameterTextBox" Path="Text" />
                                                <Binding ElementName="PipeLengthTextBox" Path="Text" />
                                            </MultiBinding>
                                        </TextBlock.Text>
                                    </TextBlock>
                                </StackPanel>

                                <StackPanel
                                    Grid.Column="1"
                                    Margin="10,0"
                                    HorizontalAlignment="Right"
                                    VerticalAlignment="Center"
                                    Orientation="Horizontal">
                                    <TextBlock
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        FontSize="24"
                                        Foreground="{StaticResource MainThemeBrush}"
                                        Text="&#xe604;" />
                                    <TextBlock
                                        Margin="10,0,0,0"
                                        FontSize="18"
                                        Foreground="{StaticResource MainThemeBrush}"
                                        Text="声速:" />
                                    <TextBlock
                                        FontSize="18"
                                        Foreground="{StaticResource MainThemeBrush}"
                                        Text="{Binding SoundSpeed, StringFormat={}{0}m/s}" />
                                </StackPanel>
                            </Grid>

                            <Grid Grid.Row="1" Background="LightGray" />

                            <Grid Grid.Row="2">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition />
                                </Grid.ColumnDefinitions>

                                <Grid
                                    Grid.Column="0"
                                    Margin="10"
                                    HorizontalAlignment="Left">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition />
                                        <ColumnDefinition />
                                    </Grid.ColumnDefinitions>

                                    <Image
                                        Grid.Column="0"
                                        Width="50"
                                        Height="57"
                                        Source="{Binding RedTransmitterState, ConverterParameter=2, Converter={StaticResource SignalImageConverter}}" />

                                    <Grid Grid.Column="1">
                                        <Grid.RowDefinitions>
                                            <RowDefinition />
                                            <RowDefinition />
                                        </Grid.RowDefinitions>

                                        <TextBlock
                                            Grid.Row="0"
                                            Margin="10,0,0,0"
                                            FontSize="28"
                                            Foreground="{StaticResource MainThemeBrush}"
                                            Text="{Binding RedTransmitterDistance, StringFormat=\{0\}m}" />

                                        <StackPanel
                                            Grid.Row="1"
                                            Margin="10,5"
                                            Orientation="Horizontal">
                                            <Border
                                                Width="50"
                                                Height="20"
                                                BorderBrush="#545454"
                                                BorderThickness="1"
                                                CornerRadius="2">
                                                <ProgressBar
                                                    Margin="1"
                                                    VerticalAlignment="Center"
                                                    Background="Transparent"
                                                    Foreground="{Binding RedTransmitterBattery, Converter={StaticResource BatteryConverter}}"
                                                    Value="{Binding RedTransmitterBattery}" />
                                            </Border>
                                            <Border
                                                Width="2"
                                                Height="10"
                                                BorderBrush="#545454"
                                                BorderThickness="1" />
                                        </StackPanel>
                                    </Grid>
                                </Grid>


                                <TextBlock
                                    Grid.Column="1"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    FontFamily="{StaticResource DigitalFont}"
                                    FontSize="80"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="{Binding ElapseTime, StringFormat={}{0}}" />

                                <Grid
                                    Grid.Column="2"
                                    Margin="10"
                                    HorizontalAlignment="Right">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition />
                                        <ColumnDefinition />
                                    </Grid.ColumnDefinitions>

                                    <Grid Grid.Column="0">
                                        <Grid.RowDefinitions>
                                            <RowDefinition />
                                            <RowDefinition />
                                        </Grid.RowDefinitions>

                                        <TextBlock
                                            Grid.Row="0"
                                            Margin="0,0,10,0"
                                            HorizontalAlignment="Right"
                                            FontSize="28"
                                            Foreground="{StaticResource MainThemeBrush}"
                                            Text="{Binding BlueTransmitterDistance, StringFormat=\{0\}m}" />

                                        <StackPanel
                                            Grid.Row="1"
                                            Margin="10,5"
                                            HorizontalAlignment="Right"
                                            Orientation="Horizontal">
                                            <Border
                                                Width="2"
                                                Height="10"
                                                BorderBrush="#545454"
                                                BorderThickness="1" />
                                            <Border
                                                Width="50"
                                                Height="20"
                                                BorderBrush="#545454"
                                                BorderThickness="1"
                                                CornerRadius="2">
                                                <ProgressBar
                                                    Margin="1"
                                                    VerticalAlignment="Center"
                                                    Background="Transparent"
                                                    Foreground="{Binding BlueTransmitterBattery, Converter={StaticResource BatteryConverter}}"
                                                    Value="{Binding BlueTransmitterBattery}" />
                                            </Border>
                                        </StackPanel>
                                    </Grid>

                                    <Image
                                        Grid.Column="1"
                                        Width="50"
                                        Height="57"
                                        Source="{Binding BlueTransmitterState, ConverterParameter=3, Converter={StaticResource SignalImageConverter}}" />
                                </Grid>
                            </Grid>

                            <Grid Grid.Row="3" Background="LightGray" />

                            <Border Grid.Row="4">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition />
                                    </Grid.ColumnDefinitions>

                                    <StackPanel Grid.Column="0" Orientation="Horizontal">
                                        <Border
                                            Margin="10"
                                            Background="{StaticResource MainThemeBrush}"
                                            CornerRadius="3">
                                            <TextBlock
                                                Margin="5,3"
                                                VerticalAlignment="Center"
                                                Foreground="White"
                                                Text="噪声值"
                                                TextAlignment="Center" />
                                        </Border>

                                        <TextBlock
                                            HorizontalAlignment="Center"
                                            VerticalAlignment="Center"
                                            FontFamily="{StaticResource DigitalFont}"
                                            FontSize="35"
                                            Foreground="{StaticResource MainThemeBrush}"
                                            Text="{Binding CorrelatorData.LeftNoiseSumValue, StringFormat={}{0:F2}}" />
                                    </StackPanel>

                                    <Button
                                        Grid.Column="1"
                                        Height="40"
                                        Command="{Binding OpenNumericKeypadCommand}"
                                        FontFamily="/Correlator;component/Fonts/#iconfont"
                                        Foreground="{StaticResource MainThemeBrush}">
                                        <StackPanel VerticalAlignment="Center" Orientation="Horizontal">
                                            <TextBlock
                                                Margin="0,0,7,0"
                                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                                FontSize="24"
                                                Foreground="{StaticResource MainThemeBrush}"
                                                Text="&#xe69b;" />

                                            <TextBlock
                                                VerticalAlignment="Center"
                                                FontSize="18"
                                                Foreground="{StaticResource MainThemeBrush}"
                                                Text="数字键盘" />
                                        </StackPanel>
                                    </Button>

                                    <StackPanel
                                        Grid.Column="2"
                                        HorizontalAlignment="Right"
                                        Orientation="Horizontal">
                                        <TextBlock
                                            HorizontalAlignment="Center"
                                            VerticalAlignment="Center"
                                            FontFamily="{StaticResource DigitalFont}"
                                            FontSize="35"
                                            Foreground="{StaticResource MainThemeBrush}"
                                            Text="{Binding CorrelatorData.RightNoiseSumValue, StringFormat={}{0:F2}}" />

                                        <Border
                                            Margin="10"
                                            Background="{StaticResource MainThemeBrush}"
                                            CornerRadius="3">
                                            <TextBlock
                                                Margin="5,3"
                                                VerticalAlignment="Center"
                                                Foreground="White"
                                                Text="噪声值"
                                                TextAlignment="Center" />
                                        </Border>
                                    </StackPanel>
                                </Grid>
                            </Border>
                        </Grid>
                    </Border>
                </Grid>
            </Grid>

            <!--  右侧功能区  -->
            <Grid Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <!--  材料配置功能区  -->
                <Border
                    Grid.Row="0"
                    Margin="0,0,10,0"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid Margin="0,0,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="40" />
                            <RowDefinition Height="40" />
                            <RowDefinition Height="40" />
                            <RowDefinition Height="40" />
                            <RowDefinition Height="40" />
                            <RowDefinition Height="40" />
                        </Grid.RowDefinitions>
                        <DockPanel Grid.Row="0" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe69e;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="管道材料" />
                        </DockPanel>

                        <ComboBox
                            x:Name="PipeNameComboBox"
                            Grid.Row="1"
                            Margin="45,0,10,0"
                            FontSize="18"
                            IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                            ItemsSource="{Binding PipeMaterialsArray}"
                            SelectedItem="{Binding MaterialName}">
                            <b:Interaction.Triggers>
                                <b:EventTrigger EventName="SelectionChanged">
                                    <b:InvokeCommandAction Command="{Binding PipeItemSelectedCommand}" CommandParameter="{Binding ElementName=PipeNameComboBox}" />
                                </b:EventTrigger>
                            </b:Interaction.Triggers>
                        </ComboBox>

                        <DockPanel Grid.Row="2" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe6cc;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="管道直径" />
                        </DockPanel>

                        <hc:TextBox
                            x:Name="PipeDiameterTextBox"
                            Grid.Row="3"
                            Height="40"
                            Margin="45,0,10,0"
                            hc:InfoElement.Placeholder="请输入管道直径,单位:mm"
                            input:InputMethod.IsInputMethodEnabled="False"
                            FontSize="18"
                            IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                            MaxLength="3"
                            ShowClearButton="True"
                            Text="{Binding PipeDiameter}" />

                        <DockPanel Grid.Row="4" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe6cd;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="管道长度" />
                        </DockPanel>

                        <hc:TextBox
                            x:Name="PipeLengthTextBox"
                            Grid.Row="5"
                            Height="40"
                            Margin="45,0,10,0"
                            hc:InfoElement.Placeholder="请输入管道长度,单位:m"
                            input:InputMethod.IsInputMethodEnabled="False"
                            FontSize="18"
                            IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                            MaxLength="3"
                            ShowClearButton="True"
                            Text="{Binding PipeLength}" />
                    </Grid>
                </Border>

                <!--  工作模式功能区  -->
                <Border
                    Grid.Row="1"
                    Margin="0,10,10,0"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid Margin="0,0,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="40" />
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <DockPanel Grid.Row="0" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe69d;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="工作模式" />
                        </DockPanel>

                        <Grid Grid.Row="1" Margin="45,5,10,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                            <RadioButton
                                x:Name="AccelerationRadioButton"
                                Grid.Column="0"
                                Height="40"
                                Margin="0,0,5,0"
                                Content="加速度计模式"
                                GroupName="WorkModeGroup"
                                IsChecked="True"
                                IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                                Style="{StaticResource RadioButtonStyle}" />

                            <RadioButton
                                x:Name="HydrophonesRadioButton"
                                Grid.Column="1"
                                Height="40"
                                Margin="5,0,0,0"
                                Content="水听器模式"
                                GroupName="WorkModeGroup"
                                IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                                Style="{StaticResource RadioButtonStyle}" />
                        </Grid>
                    </Grid>
                </Border>

                <!--  干扰频段功能区  -->
                <Border
                    Grid.Row="2"
                    Margin="0,10,10,10"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid Margin="0,0,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="40" />
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <DockPanel Grid.Row="0" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe719;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="频段区间" />
                            <TextBlock
                                FontSize="18"
                                Foreground="DarkGray"
                                Text="{Binding FrequencyInterval, StringFormat=(\{0\})}" />
                        </DockPanel>

                        <Grid
                            Grid.Row="1"
                            Margin="0,5,0,0"
                            HorizontalAlignment="Center">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <hc:TextBox
                                x:Name="LowFrequencyTextBox"
                                Grid.Column="0"
                                Width="125"
                                Margin="45,0,0,0"
                                hc:InfoElement.Placeholder="单位:Hz"
                                input:InputMethod.IsInputMethodEnabled="False"
                                FontSize="18"
                                IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                                MaxLength="3"
                                ShowClearButton="True"
                                Text="{Binding LowFrequency}" />

                            <TextBlock
                                Grid.Column="1"
                                Margin="10,0"
                                VerticalAlignment="Center"
                                FontSize="22"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="~" />

                            <hc:TextBox
                                x:Name="HighFrequencyTextBox"
                                Grid.Column="2"
                                Width="125"
                                Margin="0,0,10,0"
                                hc:InfoElement.Placeholder="单位:Hz"
                                input:InputMethod.IsInputMethodEnabled="False"
                                FontSize="18"
                                IsEnabled="{Binding ElementName=StartButton, Path=IsEnabled}"
                                MaxLength="4"
                                ShowClearButton="True"
                                Text="{Binding HighFrequency}" />
                        </Grid>
                    </Grid>
                </Border>

                <!--  按键功能区  -->
                <Border
                    Grid.Row="3"
                    Margin="0,0,10,0"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid Margin="0,0,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="40" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <DockPanel Grid.Row="0" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe69d;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="功能按键" />
                        </DockPanel>

                        <Grid Grid.Row="1" Margin="45,0,10,0">
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>

                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                            <Button
                                Grid.Row="0"
                                Grid.Column="0"
                                Width="135"
                                Height="40"
                                Margin="0,0,5,5"
                                Command="{Binding SaveAudioCommand}"
                                Content="保存"
                                Style="{StaticResource FunctionButtonStyle}" />
                            <Button
                                Grid.Row="0"
                                Grid.Column="1"
                                Width="135"
                                Height="40"
                                Margin="5,0,0,5"
                                Command="{Binding ResetParamCommand}"
                                Content="复位"
                                Style="{StaticResource FunctionButtonStyle}" />
                            <Button
                                Grid.Row="1"
                                Grid.Column="0"
                                Width="135"
                                Height="40"
                                Margin="0,5,5,0"
                                Command="{Binding SnapShotCommand}"
                                Content="快照"
                                Style="{StaticResource FunctionButtonStyle}" />
                            <Button
                                x:Name="StartButton"
                                Grid.Row="1"
                                Grid.Column="1"
                                Width="135"
                                Height="40"
                                Margin="5,5,0,0"
                                Command="{Binding StartCollectDataCommand}"
                                Content="开始"
                                IsEnabled="{Binding StartButtonEnabled}"
                                Style="{StaticResource FunctionButtonStyle}" />
                        </Grid>
                    </Grid>
                </Border>

                <!--  设备状态展示区  -->
                <Border
                    Grid.Row="4"
                    Margin="0,10,10,10"
                    BorderBrush="LightGray"
                    BorderThickness="1">
                    <Grid Margin="0,0,0,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="40" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <DockPanel Grid.Row="0" VerticalAlignment="Center">
                            <TextBlock
                                Margin="10,0"
                                FontFamily="/Correlator;component/Fonts/#iconfont"
                                FontSize="24"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="&#xe665;" />
                            <TextBlock
                                FontSize="18"
                                Foreground="{StaticResource MainThemeBrush}"
                                Text="设备状态" />
                        </DockPanel>

                        <Grid Grid.Row="1" Margin="45,0,10,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition />
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                            <DockPanel Grid.Column="0">
                                <TextBlock
                                    VerticalAlignment="Center"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="电脑电量:" />

                                <StackPanel Orientation="Horizontal">
                                    <Border
                                        Width="50"
                                        Height="20"
                                        BorderBrush="#545454"
                                        BorderThickness="1"
                                        CornerRadius="2">
                                        <ProgressBar
                                            Margin="1"
                                            VerticalAlignment="Center"
                                            Background="Transparent"
                                            Foreground="{Binding ComputerBattery, Converter={StaticResource BatteryConverter}}"
                                            Value="{Binding ComputerBattery}" />
                                    </Border>
                                    <Border
                                        Width="2"
                                        Height="10"
                                        BorderBrush="#545454"
                                        BorderThickness="1" />
                                </StackPanel>
                            </DockPanel>

                            <DockPanel Grid.Column="1" HorizontalAlignment="Right">
                                <TextBlock
                                    VerticalAlignment="Center"
                                    FontSize="18"
                                    Foreground="{StaticResource MainThemeBrush}"
                                    Text="串口状态:" />

                                <Ellipse
                                    Width="20"
                                    Height="20"
                                    HorizontalAlignment="Left"
                                    Fill="{Binding ConnectColorBrush}" />
                            </DockPanel>
                        </Grid>
                    </Grid>
                </Border>
            </Grid>
        </Grid>
    </DockPanel>
</Window>