<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="" /> </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="" /> </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="" /> </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="" /> </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="" /> </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="" /> </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="" /> </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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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="" /> <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>