<Window x:Class="Correlator.View.HomePageWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converter="clr-namespace:Correlator.Converter" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="相关仪" d:DesignHeight="768" d:DesignWidth="1366" Background="#224f86" DataContext="{Binding HomePage, Source={StaticResource Locator}}" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowState="Maximized" WindowStyle="None" mc:Ignorable="d"> <i:Interaction.Triggers> <i:EventTrigger EventName="Loaded"> <i:InvokeCommandAction Command="{Binding WindowLoadedCommand}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" /> </i:EventTrigger> </i:Interaction.Triggers> <Window.Resources> <converter:BatteryColorConverter x:Key="BatteryConverter" /> <converter:SignalIntensityImageConverter x:Key="SignalImageConverter" /> <converter:StartButtonConverter x:Key="ButtonConverter" /> <converter:StartButtonImageConverter x:Key="ButtonImageConverter" /> <converter:SnrImageConverter x:Key="SnrImageConverter" /> <converter:VisibilityConverter x:Key="VisibilityConverter" /> </Window.Resources> <Grid Margin="20,0,20,20"> <Grid.RowDefinitions> <RowDefinition Height="36" /> <RowDefinition /> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" Foreground="White" Text="{Binding CurrentTime}" /> <TextBlock Grid.Column="0" Margin="10,0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="18" Foreground="White" Text="{Binding Battery, StringFormat=\{0\}%}" TextAlignment="Right" /> <StackPanel Grid.Column="1" Orientation="Horizontal"> <Border Width="50" Height="20" BorderBrush="White" BorderThickness="2" CornerRadius="2"> <ProgressBar Margin="1" VerticalAlignment="Center" Background="Transparent" Foreground="White" Value="{Binding Battery}" /> </Border> <Border Width="2" Height="10" BorderBrush="White" BorderThickness="1" /> </StackPanel> </Grid> <Grid Grid.Row="1" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="3*" /> <RowDefinition Height="2*" /> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <!-- 左边信号 --> <Grid Grid.Column="0" Width="55" Margin="30,0,0,0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Button x:Name="ShutDownButton" Grid.Row="0" Height="50" Margin="0,10" HorizontalAlignment="Right" VerticalAlignment="Top" Background="Transparent" BorderThickness="0"> <Image Source="/Correlator;component/Image/btn_shutdown.png" /> </Button> <Image Grid.Row="2" Width="38" Height="82" Margin="0,15,0,45" Source="{Binding TransmitterASignalIntensity, ConverterParameter=0, Converter={StaticResource SignalImageConverter}}" /> </Grid> <WpfPlot x:Name="ScottplotView" Grid.Column="1" /> <!-- 右边信号 --> <Grid Grid.Column="2" Width="55" Margin="0,0,30,0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Image Grid.Row="2" Width="38" Height="82" Margin="0,15,0,45" Source="{Binding TransmitterBSignalIntensity, ConverterParameter=1, Converter={StaticResource SignalImageConverter}}" /> </Grid> </Grid> <Grid Grid.Row="1"> <Grid Margin="30,20"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/homepage_back.png" /> </Grid.Background> <Grid.ColumnDefinitions> <ColumnDefinition Width="3*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="2*" /> </Grid.ColumnDefinitions> <Grid Grid.Column="0" Margin="20,20,0,20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon3.png" /> <TextBlock VerticalAlignment="Center" FontSize="20" Text="过滤器" /> </StackPanel> <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="18" Foreground="#545454" Text="{Binding FilterValue}" /> </Grid> <Grid Grid.Row="0" Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon4.png" /> <TextBlock VerticalAlignment="Center" FontSize="20" Text="信噪比" /> </StackPanel> <StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" Orientation="Horizontal"> <TextBlock VerticalAlignment="Center" FontSize="18" Foreground="#545454" Text="{Binding Snr}" /> <Image Width="19" Height="19" Margin="10,0,0,0" VerticalAlignment="Center" Source="{Binding Snr, Converter={StaticResource SnrImageConverter}}" /> </StackPanel> </Grid> <Grid Grid.Row="0" Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon5.png" /> <TextBlock VerticalAlignment="Center" FontSize="22" Text="管道" /> </StackPanel> <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="18" Foreground="#545454" Text="{Binding PipeLine}" TextWrapping="Wrap" /> </Grid> <Grid Grid.Row="1" Grid.Column="0"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon3.png" /> <TextBlock VerticalAlignment="Center" FontSize="20" Text="干扰频段" /> </StackPanel> <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="18" Foreground="#545454" Text="{Binding NoiseValue}" /> </Grid> <Grid Grid.Row="1" Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon6.png" /> <TextBlock VerticalAlignment="Center" FontSize="20" Text="声速" /> </StackPanel> <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="18" Foreground="#545454" Text="{Binding SoundSpeed, StringFormat={}{0}m/s}" /> </Grid> <Grid Grid.Row="1" Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Grid.Row="0" HorizontalAlignment="Center" Orientation="Horizontal"> <Image Width="20" Height="20" Margin="5,0" VerticalAlignment="Center" Source="/Correlator;component/Image/homepage_icon7.png" /> <TextBlock VerticalAlignment="Center" FontSize="20" Text="经过了" /> </StackPanel> <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="18" Foreground="#545454" Text="{Binding PassTime, StringFormat={}{0}s}" /> </Grid> <Grid Grid.Row="1" Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> </Grid> </Grid> <Grid Grid.Column="1" Margin="0,20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="1.5*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Image Width="50" Height="57" Source="{Binding TransmitterAFault, ConverterParameter=2, Converter={StaticResource SignalImageConverter}}" /> <TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Bottom" Foreground="Red" Text="传感器故障" Visibility="{Binding TransmitterAFault, ConverterParameter=0, Converter={StaticResource VisibilityConverter}}" /> <Image Grid.Row="1" Grid.Column="0" Width="50" Height="57" Source="{Binding TransmitterBFault, ConverterParameter=3, Converter={StaticResource SignalImageConverter}}" /> <TextBlock Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Bottom" Foreground="Red" Text="传感器故障" Visibility="{Binding TransmitterAFault, ConverterParameter=0, Converter={StaticResource VisibilityConverter}}" /> <Grid Grid.Row="0" Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Margin="0,0,-35,0" Orientation="Horizontal"> <TextBlock VerticalAlignment="Bottom" FontSize="30" Foreground="#545454" Text="{Binding TransmitterADistance, StringFormat=\{0\}}" /> <TextBlock Margin="5,0,0,3" VerticalAlignment="Bottom" FontSize="18" Text="m" /> </StackPanel> <StackPanel Grid.Row="1" Margin="0,10,0,0" VerticalAlignment="Top" Orientation="Horizontal"> <Border Width="50" Height="20" BorderBrush="#545454" BorderThickness="1" CornerRadius="2"> <ProgressBar Margin="1" VerticalAlignment="Center" Background="Transparent" Foreground="{Binding TransmitterABattery, Converter={StaticResource BatteryConverter}}" Value="{Binding TransmitterABattery}" /> </Border> <Border Width="2" Height="10" BorderBrush="#545454" BorderThickness="1" /> </StackPanel> </Grid> <Grid Grid.Row="1" Grid.Column="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Margin="0,0,-35,0" Orientation="Horizontal"> <TextBlock VerticalAlignment="Bottom" FontSize="30" Foreground="#545454" Text="{Binding TransmitterBDistance, StringFormat=\{0\}}" /> <TextBlock Margin="5,0,0,3" VerticalAlignment="Bottom" FontSize="18" Text="m" /> </StackPanel> <StackPanel Grid.Row="1" Margin="0,10,0,0" VerticalAlignment="Top" Orientation="Horizontal"> <Border Width="50" Height="20" BorderBrush="#545454" BorderThickness="1" CornerRadius="2"> <ProgressBar Margin="1" VerticalAlignment="Center" Background="Transparent" Foreground="{Binding TransmitterBBattery, Converter={StaticResource BatteryConverter}}" Value="{Binding TransmitterBBattery}" /> </Border> <Border Width="2" Height="10" BorderBrush="#545454" BorderThickness="1" /> </StackPanel> </Grid> </Grid> <UniformGrid Grid.Column="2" Rows="2"> <RadioButton x:Name="AccelerometerButton" Content="加速度计模式" FontSize="18" GroupName="ModeGroup" /> <RadioButton x:Name="HydrophoneButton" Content="水听器模式" FontSize="18" GroupName="ModeGroup" /> </UniformGrid> <Grid Grid.Column="3" Margin="0,20,20,20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Button Grid.Row="0" Grid.Column="0" Width="85" Height="100" HorizontalAlignment="Left" BorderBrush="Transparent" Command="{Binding AudioCommand}"> <!-- IsEnabled="{Binding AudioButtonIsEnabled}" --> <StackPanel Orientation="Vertical"> <Grid Width="56" Height="56"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/btn_icon2.png" /> </Grid.Background> <Image Width="30" Height="30" Source="/Correlator;component/Image/b_icon2.png" /> </Grid> <TextBlock Margin="0,5,0,0" HorizontalAlignment="Center" FontSize="18" Text="听音" /> </StackPanel> </Button> <Button x:Name="SnapShotButton" Grid.Row="0" Grid.Column="1" Width="85" Height="100" HorizontalAlignment="Left" BorderBrush="Transparent"> <!-- IsEnabled="{Binding SnapButtonIsEnabled}" --> <StackPanel Orientation="Vertical"> <Grid Width="56" Height="56"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/btn_icon2.png" /> </Grid.Background> <Image Width="30" Height="30" Source="/Correlator;component/Image/b_icon3.png" /> </Grid> <TextBlock Margin="0,5,0,0" HorizontalAlignment="Center" FontSize="18" Text="快照" /> </StackPanel> </Button> <Button Grid.Row="0" Grid.Column="2" Width="85" Height="100" HorizontalAlignment="Left" BorderBrush="Transparent" Command="{Binding SaveAudioCommand}"> <!-- IsEnabled="{Binding SaveButtonIsEnabled}" --> <StackPanel Orientation="Vertical"> <Grid Width="56" Height="56"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/btn_icon2.png" /> </Grid.Background> <Image Width="30" Height="30" Source="/Correlator;component/Image/b_icon6.png" /> </Grid> <TextBlock Margin="0,5,0,0" HorizontalAlignment="Center" FontSize="18" Text="保存" /> </StackPanel> </Button> <Button Grid.Row="1" Grid.Column="0" Width="85" Height="100" HorizontalAlignment="Right" BorderBrush="Transparent" Command="{Binding ResetParamCommand}"> <!-- IsEnabled="{Binding ResetButtonIsEnabled}" --> <StackPanel Orientation="Vertical"> <Grid Width="56" Height="56"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/btn_icon2.png" /> </Grid.Background> <Image Width="30" Height="30" Source="/Correlator;component/Image/b_icon4.png" /> </Grid> <TextBlock Margin="0,5,0,0" HorizontalAlignment="Center" FontSize="18" Text="复位" /> </StackPanel> </Button> <Button Grid.Row="1" Grid.Column="1" Width="85" Height="100" HorizontalAlignment="Right" BorderBrush="Transparent" Command="{Binding StartCalculateCommand}"> <!-- IsEnabled="{Binding StartButtonIsEnabled}" --> <StackPanel Orientation="Vertical"> <Grid Width="56" Height="56"> <Grid.Background> <ImageBrush ImageSource="/Correlator;component/Image/btn_icon2.png" /> </Grid.Background> <Image Width="30" Height="30" Source="{Binding StartState, Converter={StaticResource ButtonImageConverter}}" /> </Grid> <TextBlock Margin="0,5,0,0" HorizontalAlignment="Center" FontSize="18" Text="{Binding StartState, Converter={StaticResource ButtonConverter}}" /> </StackPanel> </Button> </Grid> </Grid> <Button x:Name="OpenMenuButton" Width="80" Height="72" HorizontalAlignment="Right" VerticalAlignment="Bottom" Background="Transparent" BorderThickness="0"> <Image Source="/Correlator;component/Image/homepage_icon11.png" /> </Button> </Grid> </Grid> <!-- 其他页面容器 --> <Grid x:Name="HomePageContentGrid" Grid.Row="1" /> </Grid> </Window>