Compare commits
No commits in common. 'prototype' and 'main' have entirely different histories.
@ -1,46 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.Controls.FFPlayerControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.Controls"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Border >
|
||||
<Grid Background="#1D3649">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="32"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="32"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border BorderThickness="0 0 0 1" BorderBrush="#325C80" Background="#264A60">
|
||||
<TextBlock x:Name="lblCCTVID" Margin="12 0"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Center"
|
||||
Style="{StaticResource CCTVTextBlockStyle}"
|
||||
Text="{Binding CCTVInfo.DeviceId}"/>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" x:Name="bdrNoSignalContainer"
|
||||
Visibility="{Binding IsPlayingVIsibility}">
|
||||
<TextBlock Name="lblVideoStatus" Text="연결 없음"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
FontSize="16" Foreground="#999999" FontFamily="{StaticResource Pretendard_Medium}"/>
|
||||
</Border>
|
||||
|
||||
<Image x:Name="imgPlayer" Grid.Row="1"
|
||||
Stretch="Fill" Source="{Binding CurrentFrame}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||
<!--<StackPanel Name="spTopMenuBar" Visibility="Hidden" Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Image Name="imgMaximize" Source="../Images/maximize.png" Width="24" Margin="1, 5, 0, 5" MouseLeftButtonUp="imgMaximize_MouseUp" Opacity="0.7" MouseEnter="imgTopmenu_MouseEnter" MouseLeave="imgTopmenu_MouseLeave"/>
|
||||
</StackPanel>-->
|
||||
|
||||
<Border Grid.Row="2" Background="#1D3649"
|
||||
BorderThickness="0 1 0 0" BorderBrush="#325C80">
|
||||
<TextBlock x:Name="lblCCTVName" Text="{Binding CCTVInfo.DeviceName}"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
Margin="12 0"
|
||||
Style="{StaticResource CCTVTextBlockStyle}"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,17 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.Controls.GraphControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:oxy="http://oxyplot.org/wpf"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="1080">
|
||||
<Border>
|
||||
<Grid>
|
||||
<oxy:PlotView Name="pvChart" Model="{Binding Model}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="0"
|
||||
Background="Transparent"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,23 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.Controls.SegmentedControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Border Background="#1D3649" CornerRadius="35" Width="759">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<RadioButton Name="rdbtnA" Content="수조" GroupName="SignalType" Tag="Tank"
|
||||
Checked="RadioButton_Checked"
|
||||
Style="{StaticResource RadioButtonSegmentedStyle}" IsChecked="True"/>
|
||||
<RadioButton Name="rdbtnB" Content="여과시스템" GroupName="SignalType" Tag="Filter"
|
||||
Checked="RadioButton_Checked"
|
||||
Style="{StaticResource RadioButtonSegmentedStyle}"/>
|
||||
<RadioButton Name="rdbtnC" Content="살균시스템" GroupName="SignalType" Tag="Sterilizer"
|
||||
Checked="RadioButton_Checked"
|
||||
Style="{StaticResource RadioButtonSegmentedStyle}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,852 +0,0 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
xmlns:vm="clr-namespace:SmartAquaViewer.ViewModel"
|
||||
xmlns:model="clr-namespace:SmartAquaViewer.Model"
|
||||
xmlns:da="clr-namespace:SmartAquaViewer.DataAnalysis"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework">
|
||||
|
||||
<classes:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
<classes:InverseBoolConverter x:Key="InverseBoolConverter"/>
|
||||
<classes:EnumEqualsConverter x:Key="EnumEqualsConverter"/>
|
||||
<classes:BoolToPowerConverter x:Key="BoolToPowerConverter"/>
|
||||
<classes:OneBasedConverter x:Key="OneBasedConverter"/>
|
||||
<classes:PageIndexToDisplayConverter x:Key="PageIndexToDisplayConverter"/>
|
||||
<classes:CurrentPageEqualsConverter x:Key="CurrentPageEqualsConverter"/>
|
||||
|
||||
<FontFamily x:Key="Pretendard_Thin">pack://application:,,,/Fonts/#Pretendard Thin</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_ExtraLight">pack://application:,,,/Fonts/#Pretendard ExtraLight</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_Light">pack://application:,,,/Fonts/#Pretendard Light</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_Regular">pack://application:,,,/Fonts/#Pretendard Regular</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_Medium">pack://application:,,,/Fonts/#Pretendard Medium</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_SemiBold">pack://application:,,,/Fonts/#Pretendard SemiBold</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_Bold">pack://application:,,,/Fonts/#Pretendard Bold</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_ExtraBold">pack://application:,,,/Fonts/#Pretendard ExtraBold</FontFamily>
|
||||
<FontFamily x:Key="Pretendard_Black">pack://application:,,,/Fonts/#Pretendard Black</FontFamily>
|
||||
|
||||
<Style TargetType="{x:Type TextBlock}" x:Key="TitleTextBlockStyle">
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_SemiBold}"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontSize" Value="16"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowChromeStyle" TargetType="{x:Type Window}">
|
||||
<Setter Property="shell:WindowChrome.WindowChrome">
|
||||
<Setter.Value>
|
||||
<shell:WindowChrome CaptionHeight="35"
|
||||
CornerRadius="0"
|
||||
GlassFrameThickness="0"
|
||||
NonClientFrameEdges="None"
|
||||
ResizeBorderThickness="0"
|
||||
UseAeroCaptionButtons="True" />
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowChromeButtonStyle" TargetType="{x:Type Button}">
|
||||
<Setter Property="Background" Value="#00000000"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="BorderBrush" Value="#00000000"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Width" Value="40"/>
|
||||
<Setter Property="Height" Value="35"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Button}">
|
||||
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#E8582B"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="Background" Value="#D58C3A"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="RadioBtnContentTextBlockStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="16"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
<Setter Property="Foreground" Value="#999"/>
|
||||
<Style.Triggers>
|
||||
<!-- 🔹 라디오버튼이 체크되었을 때 텍스트 색 변경 -->
|
||||
<DataTrigger
|
||||
Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=RadioButton}}"
|
||||
Value="True">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CheckBoxContentTextBlockStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="16"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
<Setter Property="Foreground" Value="#999"/>
|
||||
<Style.Triggers>
|
||||
<!-- 🔹 라디오버튼이 체크되었을 때 텍스트 색 변경 -->
|
||||
<DataTrigger
|
||||
Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType=CheckBox}}"
|
||||
Value="True">
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="FieldNameRunStyle" TargetType="{x:Type Run}">
|
||||
<Setter Property="FontSize" Value="18"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
<Setter Property="Foreground" Value="#4178BE"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="FieldValueRunStyle" TargetType="{x:Type Run}">
|
||||
<Setter Property="FontSize" Value="24"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_SemiBold}"/>
|
||||
<Setter Property="Foreground" Value="#FFFFFF"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ImageRadioButtonStyle" TargetType="RadioButton">
|
||||
<Setter Property="Foreground" Value="#999"/>
|
||||
<Setter Property="FontSize" Value="20"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<Grid>
|
||||
<Image x:Name="ButtonImage" Stretch="Fill"
|
||||
Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(helper:RadioButtonHelper.UnPressedImage)}"/>
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
TextElement.FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
TextElement.FontSize="{TemplateBinding FontSize}"
|
||||
TextElement.Foreground="{TemplateBinding Foreground}"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="ButtonImage" Property="Source"
|
||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(helper:RadioButtonHelper.PressedImage)}"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="RadioButtonSegmentedStyle" TargetType="RadioButton">
|
||||
<Setter Property="Foreground" Value="#999"/>
|
||||
<Setter Property="FontSize" Value="20"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Width" Value="249"/>
|
||||
<Setter Property="Height" Value="56"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<Grid>
|
||||
<Border Background="{TemplateBinding Background}" CornerRadius="30"
|
||||
Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
TextElement.FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
TextElement.FontSize="{TemplateBinding FontSize}"
|
||||
TextElement.Foreground="{TemplateBinding Foreground}"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="Background" Value="#4178BE"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="RadioButtonTabStyle" TargetType="RadioButton">
|
||||
<Setter Property="Foreground" Value="#999"/>
|
||||
<Setter Property="FontSize" Value="26"/>
|
||||
<Setter Property="Background" Value="#325C80"/>
|
||||
<Setter Property="Opacity" Value="0.4"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<Border Background="{TemplateBinding Background}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
TextElement.FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
TextElement.FontSize="{TemplateBinding FontSize}"
|
||||
TextElement.Foreground="{TemplateBinding Foreground}"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Opacity" Value="0.8"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
|
||||
<Style x:Key="PageCommandButtonStyle"
|
||||
TargetType="Button"
|
||||
BasedOn="{StaticResource MaterialDesignFlatLightBgButton}">
|
||||
|
||||
<!-- 기본 속성 재정의 -->
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="Width" Value="20"/>
|
||||
<Setter Property="Height" Value="20"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="Margin" Value="4 0"/>
|
||||
<Setter Property="Opacity" Value="1"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="PageNumButtonStyle" TargetType="{x:Type Button}">
|
||||
<Setter Property="Width" Value="24"/>
|
||||
<Setter Property="Height" Value="24"/>
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderBrush" Value="#264A60" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="Foreground" Value="#264A60"/>
|
||||
<Setter Property="Padding" Value="6 0"/>
|
||||
<Setter Property="Margin" Value="6"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Value="True">
|
||||
<DataTrigger.Binding>
|
||||
<MultiBinding Converter="{StaticResource CurrentPageEqualsConverter}">
|
||||
<!-- 현재 버튼의 인덱스 (각 아이템, int) -->
|
||||
<Binding />
|
||||
<!-- TanksPager.PageIndex -->
|
||||
<Binding Path="DataContext.PageIndex"
|
||||
RelativeSource="{RelativeSource AncestorType=ItemsControl}" />
|
||||
</MultiBinding>
|
||||
</DataTrigger.Binding>
|
||||
<Setter Property="Background" Value="#325C80" />
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ImageButtonStyle" TargetType="Button">
|
||||
<Setter Property="Width" Value="58"/>
|
||||
<Setter Property="Height" Value="42"/>
|
||||
<Setter Property="Margin" Value="2.5 0"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Grid>
|
||||
<Image x:Name="PART_Image"
|
||||
Source="{TemplateBinding helper:ImageButtonHelper.ImageSource}"
|
||||
Stretch="Uniform"/>
|
||||
<ContentPresenter HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
RecognizesAccessKey="True"/>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="PART_Image" Property="Opacity" Value="0.8"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="PART_Image" Property="Opacity" Value="0.6"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="PART_Image" Property="Opacity" Value="0.4"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="TrapezoidButtonStyle" TargetType="Button">
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="Width" Value="92"/>
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Grid>
|
||||
<Polygon x:Name="shape"
|
||||
Fill="#1D3649"
|
||||
Points="85.6111,0 92,30 0,30 6.38889,0" />
|
||||
|
||||
<ContentPresenter HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0"/>
|
||||
</Grid>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#264A63"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#162938"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#555"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="VerticalTrapezoidButtonStyle" TargetType="Button">
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="Width" Value="30"/>
|
||||
<Setter Property="Height" Value="92"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Grid>
|
||||
<Polygon x:Name="shape"
|
||||
Fill="#1D3649"
|
||||
Points="0,85.6111 30,92 30,0 0,6.38889" />
|
||||
|
||||
<ContentPresenter HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0"/>
|
||||
</Grid>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#264A63"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#162938"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="shape" Property="Fill" Value="#555"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<SolidColorBrush x:Key="LineComboBg" Color="#1D3649" />
|
||||
<!-- 바 전체 배경 -->
|
||||
<SolidColorBrush x:Key="LineComboText" Color="#999999" />
|
||||
<!-- LINE 텍스트 색 -->
|
||||
<SolidColorBrush x:Key="LineComboArrow" Color="#C0C3C6" />
|
||||
<!-- 화살표 색 -->
|
||||
<SolidColorBrush x:Key="LineComboHover" Color="#1D3E55" />
|
||||
<SolidColorBrush x:Key="LineComboItemHover" Color="#325C80" />
|
||||
<SolidColorBrush x:Key="LineComboItemSelected" Color="#325C80" />
|
||||
|
||||
<Style x:Key="ComboDropToggleStyle" TargetType="ToggleButton">
|
||||
<Setter Property="Focusable" Value="False" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ToggleButton">
|
||||
<Border x:Name="Bd"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderThickness="0">
|
||||
<ContentPresenter HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- 마우스 올렸을 때 살짝만 진하게, 싫으면 이 트리거 삭제 -->
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background"
|
||||
Value="{StaticResource LineComboHover}" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- 아이템 스타일 (드롭다운 내부 항목) -->
|
||||
<Style x:Key="LineComboBoxItemStyle" TargetType="ComboBoxItem">
|
||||
<Setter Property="Foreground" Value="{StaticResource LineComboText}" />
|
||||
<Setter Property="Background" Value="{StaticResource LineComboBg}" />
|
||||
<Setter Property="Padding" Value="10,4" />
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ComboBoxItem">
|
||||
<Border x:Name="Bd"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderThickness="0 1 0 0"
|
||||
BorderBrush="#264A60">
|
||||
<ContentPresenter
|
||||
Margin="{TemplateBinding Padding}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsHighlighted" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background"
|
||||
Value="{StaticResource LineComboItemHover}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background"
|
||||
Value="{StaticResource LineComboItemSelected}" />
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.4"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- 콤보박스 본체 스타일 -->
|
||||
<Style x:Key="ComboBoxStyle" TargetType="ComboBox">
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="Background" Value="{StaticResource LineComboBg}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource LineComboText}"/>
|
||||
<Setter Property="FontSize" Value="16"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_SemiBold}"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="Padding" Value="12 0" />
|
||||
<Setter Property="ItemContainerStyle" Value="{StaticResource LineComboBoxItemStyle}" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ComboBox">
|
||||
<Grid Background="{TemplateBinding Background}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="32" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentPresenter x:Name="ContentSite"
|
||||
Margin="{TemplateBinding Padding}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Content="{TemplateBinding SelectionBoxItem}"
|
||||
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
|
||||
RecognizesAccessKey="True" />
|
||||
|
||||
<ToggleButton x:Name="DropDownToggle"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource ComboDropToggleStyle}"
|
||||
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay,
|
||||
RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<Path Stroke="{StaticResource LineComboArrow}"
|
||||
StrokeThickness="1.6"
|
||||
StrokeStartLineCap="Round"
|
||||
StrokeEndLineCap="Round"
|
||||
Data="M 3 4 L 8 9 L 13 4" />
|
||||
</ToggleButton>
|
||||
|
||||
<Popup x:Name="PART_Popup"
|
||||
Placement="Bottom"
|
||||
AllowsTransparency="True"
|
||||
Focusable="False"
|
||||
IsOpen="{TemplateBinding IsDropDownOpen}"
|
||||
PopupAnimation="Fade"
|
||||
PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<Border Background="{StaticResource LineComboBg}"
|
||||
BorderThickness="0"
|
||||
Width="{Binding ActualWidth,
|
||||
RelativeSource={RelativeSource TemplatedParent}}">
|
||||
<!-- 🔴 여기: 흰 배경 안 나오게 -->
|
||||
<ScrollViewer Background="{StaticResource LineComboBg}">
|
||||
<StackPanel IsItemsHost="True" />
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
</Popup>
|
||||
</Grid>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.4" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- DataGrid -->
|
||||
|
||||
<Style TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="Padding" Value="0" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type DataGridCell}">
|
||||
<Grid>
|
||||
<ContentPresenter Margin="0" />
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style x:Key="DataGridStyle" TargetType="DataGrid">
|
||||
<Setter Property="EnableRowVirtualization" Value="True"/>
|
||||
<Setter Property="EnableColumnVirtualization" Value="True"/>
|
||||
<Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/>
|
||||
<Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/>
|
||||
<Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
|
||||
<Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="True"/>
|
||||
<Setter Property="HeadersVisibility" Value="Column"/>
|
||||
<Setter Property="AutoGenerateColumns" Value="False"/>
|
||||
<Setter Property="IsReadOnly" Value="True"/>
|
||||
<Setter Property="CanUserAddRows" Value="False"/>
|
||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalGridLinesBrush" Value="#767676"/>
|
||||
<Setter Property="VerticalGridLinesBrush" Value="#767676"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="#999"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="TextElement.FontSize" Value="14"/>
|
||||
</Style>
|
||||
<Style x:Key="DataGridRowStyle" TargetType="{x:Type DataGridRow}">
|
||||
<Setter Property="Background" Value="#292929"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
<Setter Property="Foreground" Value="#BDBDBD"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
</Style>
|
||||
<Style x:Key="DataGridColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
|
||||
<Setter Property="Background" Value="#264A60"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="BorderBrush" Value="White"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_SemiBold}"/>
|
||||
<Setter Property="Height" Value="44"/>
|
||||
</Style>
|
||||
<Style x:Key="HighlightLeftBorderHeaderStyle"
|
||||
TargetType="{x:Type DataGridColumnHeader}"
|
||||
BasedOn="{StaticResource DataGridColumnHeaderStyle}">
|
||||
<Setter Property="BorderBrush" Value="White"/>
|
||||
<Setter Property="BorderThickness" Value="1 0 0 0"/>
|
||||
</Style>
|
||||
<Style x:Key="HighlightLeftBorderCellStyle"
|
||||
TargetType="DataGridCell"
|
||||
BasedOn="{StaticResource MaterialDesignDataGridCell}">
|
||||
<Setter Property="BorderBrush" Value="White"/>
|
||||
<Setter Property="BorderThickness" Value="1 0 0 0"/>
|
||||
</Style>
|
||||
<Style x:Key="DataGridElmenetStyle" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="GridViewColumnHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
|
||||
<Border BorderThickness="0,0,0,1" BorderBrush="#FFF"
|
||||
Background="#1D3649"
|
||||
Width="{TemplateBinding Width}" >
|
||||
<TextBlock Text="{TemplateBinding Content}"
|
||||
FontSize="14"
|
||||
FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
Foreground="White"
|
||||
Padding="0"
|
||||
TextAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="OverridesDefaultStyle" Value="True" />
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="Height" Value="40"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="GridViewTextBlockStyle" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="ListBoxItem" x:Key="TransparentListBoxItemStyle" BasedOn="{StaticResource MaterialDesignListBoxItem}">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left"/>
|
||||
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ListBoxItem">
|
||||
<Border Background="Transparent">
|
||||
<ContentPresenter/>
|
||||
</Border>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- Hover 배경 제거 -->
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
</Trigger>
|
||||
|
||||
<!-- 선택 배경 제거 -->
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.6"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="ListBoxItem" x:Key="ListBoxItemStyle" BasedOn="{StaticResource MaterialDesignListBoxItem}">
|
||||
<Setter Property="Background" Value="#1D3649"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left"/>
|
||||
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ListBoxItem">
|
||||
<Border x:Name="RootBorder"
|
||||
Background="{TemplateBinding Background}"
|
||||
CornerRadius="15"
|
||||
Margin="0 0 4 8">
|
||||
<ContentPresenter/>
|
||||
</Border>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.6"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="SquareCheckToggleButtonStyle" TargetType="ToggleButton">
|
||||
<!-- 기본 값들 -->
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="Foreground" Value="#808890"/>
|
||||
<!-- 기본 숫자색: 회색 -->
|
||||
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ToggleButton">
|
||||
<StackPanel Orientation="Horizontal"
|
||||
VerticalAlignment="Center">
|
||||
|
||||
<!-- 네모 체크박스 부분 -->
|
||||
<Border x:Name="CheckBoxBorder"
|
||||
Width="18"
|
||||
Height="18"
|
||||
Margin="0,0,4,0"
|
||||
Background="Transparent"
|
||||
BorderBrush="#294A63"
|
||||
BorderThickness="1.5">
|
||||
|
||||
<!-- 체크 표시 -->
|
||||
<Path x:Name="CheckMark"
|
||||
Stroke="White"
|
||||
StrokeThickness="2"
|
||||
Data="M3,9 L7,13 L14,4"
|
||||
Stretch="Uniform"
|
||||
SnapsToDevicePixels="True"
|
||||
Visibility="Collapsed"/>
|
||||
</Border>
|
||||
|
||||
<!-- 숫자(컨텐츠) -->
|
||||
<ContentPresenter x:Name="contentPresenter"
|
||||
VerticalAlignment="Center"
|
||||
TextElement.Foreground="{TemplateBinding Foreground}"/>
|
||||
</StackPanel>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- 체크 되었을 때 -->
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="Background"
|
||||
Value="#28567A"/>
|
||||
<!-- 파란 배경 -->
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="BorderBrush"
|
||||
Value="#28567A"/>
|
||||
<Setter TargetName="CheckMark"
|
||||
Property="Visibility"
|
||||
Value="Visible"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<!-- 숫자 흰색 -->
|
||||
</Trigger>
|
||||
|
||||
<!-- 마우스 오버 효과 약간 -->
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="BorderBrush"
|
||||
Value="#3A6C90"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CircleCheckToggleButtonStyle" TargetType="ToggleButton">
|
||||
<!-- 기본 값들 -->
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="Foreground" Value="#999999"/>
|
||||
<!-- 기본 숫자색: 회색 -->
|
||||
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ToggleButton">
|
||||
<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Center">
|
||||
|
||||
<!-- 네모 체크박스 부분 -->
|
||||
<Border x:Name="CheckBoxBorder"
|
||||
Width="18"
|
||||
Height="18"
|
||||
Background="Transparent"
|
||||
BorderBrush="#264A60"
|
||||
BorderThickness="1.5"
|
||||
CornerRadius="9"
|
||||
Margin="0 6 8 6">
|
||||
|
||||
<!-- 체크 표시 -->
|
||||
<Path x:Name="CheckMark"
|
||||
Stroke="White"
|
||||
StrokeThickness="2"
|
||||
Data="M3,9 L7,13 L14,4"
|
||||
Stretch="Uniform"
|
||||
SnapsToDevicePixels="True"
|
||||
Visibility="Collapsed"/>
|
||||
</Border>
|
||||
|
||||
<!-- 숫자(컨텐츠) -->
|
||||
<ContentPresenter x:Name="contentPresenter"
|
||||
VerticalAlignment="Center"
|
||||
TextElement.Foreground="{TemplateBinding Foreground}"
|
||||
TextElement.FontSize="12"
|
||||
TextElement.FontFamily="{StaticResource Pretendard_Medium}"/>
|
||||
</StackPanel>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- 체크 되었을 때 -->
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="Background"
|
||||
Value="#325C80"/>
|
||||
<!-- 파란 배경 -->
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="BorderBrush"
|
||||
Value="#325C80"/>
|
||||
<Setter TargetName="CheckMark"
|
||||
Property="Visibility"
|
||||
Value="Visible"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<!-- 숫자 흰색 -->
|
||||
</Trigger>
|
||||
|
||||
<!-- 마우스 오버 효과 약간 -->
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="CheckBoxBorder"
|
||||
Property="BorderBrush"
|
||||
Value="#3A6C90"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<SolidColorBrush x:Key="CustomSliderBackgroundSolidColorBrush" Color="#1D3649" />
|
||||
<SolidColorBrush x:Key="CustomSliderForegroundBrush" Color="#4178BE" />
|
||||
<SolidColorBrush x:Key="CustomSliderThumBrush" Color="#E5E5E8" />
|
||||
|
||||
<Style x:Key="CustomSliderThumbStyle" TargetType="{x:Type Thumb}">
|
||||
<Setter Property="Focusable" Value="false"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="true"/>
|
||||
<Setter Property="OverridesDefaultStyle" Value="true"/>
|
||||
<Setter Property="Height" Value="16"/>
|
||||
<Setter Property="Width" Value="16"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Thumb}">
|
||||
<Canvas SnapsToDevicePixels="true">
|
||||
<Border x:Name="Background"
|
||||
Background="{StaticResource CustomSliderThumBrush}"
|
||||
BorderBrush="#4dffffff"
|
||||
BorderThickness="2"
|
||||
Height="16" Width="16"
|
||||
CornerRadius="25"/>
|
||||
</Canvas>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<ControlTemplate x:Key="CustomSliderControlTemplate" TargetType="{x:Type Slider}">
|
||||
<Border Background="Transparent" SnapsToDevicePixels="True">
|
||||
<Grid>
|
||||
<DockPanel LastChildFill="True">
|
||||
<Border x:Name="PART_SelectionRange" Height="8" ClipToBounds="True" Visibility="Visible">
|
||||
<Rectangle Margin="0 0 -10 0" RadiusX="5" RadiusY="5" Fill="{StaticResource CustomSliderForegroundBrush}"/>
|
||||
</Border>
|
||||
<Border ClipToBounds="True" Height="8" Visibility="Visible">
|
||||
<Rectangle Margin="0 0 0 0" RadiusX="5" RadiusY="5" Fill="{StaticResource CustomSliderBackgroundSolidColorBrush}" />
|
||||
</Border>
|
||||
</DockPanel>
|
||||
|
||||
<Track x:Name="PART_Track">
|
||||
<Track.Thumb>
|
||||
<Thumb Style="{StaticResource CustomSliderThumbStyle}" VerticalAlignment="Center"
|
||||
OverridesDefaultStyle="True" Focusable="False" />
|
||||
</Track.Thumb>
|
||||
</Track>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
|
||||
<Style x:Key="CustomSliderStyle" TargetType="{x:Type Slider}">
|
||||
<Setter Property="Template" Value="{StaticResource CustomSliderControlTemplate}" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="Height" Value="30" />
|
||||
<Setter Property="BorderBrush" Value="Transparent" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="AutoToolTipPlacement" Value="None" />
|
||||
<Setter Property="IsMoveToPointEnabled" Value="True" />
|
||||
<Setter Property="IsSelectionRangeEnabled" Value="True" />
|
||||
<Setter Property="SelectionStart" Value="0" />
|
||||
<Setter Property="SelectionEnd" Value="{Binding Path=Value, RelativeSource={RelativeSource Self}}" />
|
||||
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="GeneralButtonStyle" TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatLightBgButton}">
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_SemiBold}" />
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
<Setter Property="FontSize" Value="16" />
|
||||
<Setter Property="Background" Value="#325C80" />
|
||||
<Setter Property="BorderBrush" Value="Transparent" />
|
||||
<Setter Property="Width" Value="120" />
|
||||
<Setter Property="Height" Value="38" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CCTVTextBlockStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{StaticResource Pretendard_Medium}" />
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
<Setter Property="FontSize" Value="16" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
|
Before Width: | Height: | Size: 163 B |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 990 B |
|
Before Width: | Height: | Size: 986 B |
|
Before Width: | Height: | Size: 983 B |
|
Before Width: | Height: | Size: 958 B |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 460 B |
|
Before Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 384 B |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,193 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.View.CCTVView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.View"
|
||||
xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
|
||||
xmlns:controls="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
xmlns:model="clr-namespace:SmartAquaViewer.Model"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Border BorderBrush="#1D3649" BorderThickness="0 0 2 0">
|
||||
<md:DrawerHost RightDrawerBackground="Transparent" IsRightDrawerOpen="{Binding IsOpenMode}" OpenMode="Standard">
|
||||
<Border>
|
||||
<Grid Background="Transparent">
|
||||
<ItemsControl ItemsSource="{Binding PlayerVMs}" Margin="0 0 46 0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<UniformGrid x:Name="ugrdFFPlayer" Margin="-4"
|
||||
Rows="{Binding RowCount}" Columns="{Binding ColumnCount}" />
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemContainerStyle>
|
||||
<Style TargetType="ContentPresenter">
|
||||
<Setter Property="Margin" Value="4"/>
|
||||
<!-- 원하는 간격값 -->
|
||||
</Style>
|
||||
</ItemsControl.ItemContainerStyle>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<controls:FFPlayerControl/>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Grid HorizontalAlignment="Right">
|
||||
<Button Name="btnVisibilityRight" Tag="right"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityRight}">
|
||||
<Path Data="M13.0607 12.1111L8.11067 17.0611L9.52467 18.4751L15.8887 12.1111L9.52467 5.7471L8.11067 7.1611L13.0607 12.1111Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="btnVisibilityLeft" Tag="left"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityLeft}">
|
||||
<Path Data="M11.1615 12.1111 L16.11153 17.0611 L14.69753 18.4751 L8.3335 12.1111 L14.69753 5.7471 L16.11153 7.1611 Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
<md:DrawerHost.RightDrawerContent>
|
||||
<Border Width="348" Background="#1D3649" CornerRadius="0 4 4 0">
|
||||
<Border Margin="16" CornerRadius="4" Background="#152935"
|
||||
BorderBrush="#325C80" BorderThickness="1">
|
||||
<Grid Margin="24">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="41"/>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="81"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Margin="0 0 0 16" Width="250">
|
||||
<Image Source="/Resources/Images/cctv.png"
|
||||
VerticalAlignment="Center"
|
||||
Width="20" Height="20"/>
|
||||
<TextBlock Text="CCTV 목록" FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
FontSize="18" FontWeight="Bold" Foreground="White"
|
||||
VerticalAlignment="Center" Margin="8 0"/>
|
||||
</StackPanel>
|
||||
|
||||
<ListView Grid.Row="1" Width="250"
|
||||
ItemsSource="{Binding CCTVInfoList}"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Hidden"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
|
||||
BorderThickness="0" Background="Transparent">
|
||||
<ListView.ItemContainerStyle>
|
||||
<Style TargetType="ListViewItem">
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="IsHitTestVisible" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ListViewItem">
|
||||
<Border x:Name="RowBorder"
|
||||
BorderBrush="#767676"
|
||||
BorderThickness="0 0 0 1"
|
||||
Background="Transparent">
|
||||
<GridViewRowPresenter
|
||||
Content="{TemplateBinding Content}"
|
||||
Columns="{Binding RelativeSource={RelativeSource AncestorType=ListView},
|
||||
Path=View.Columns}"
|
||||
VerticalAlignment="Center"
|
||||
Height="40"/>
|
||||
</Border>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter TargetName="RowBorder" Property="Background" Value="#2D4B63"/>
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="RowBorder" Property="Background" Value="#223E52"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
<ListView.View>
|
||||
<GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnHeaderStyle}">
|
||||
<GridViewColumn Header="상태" Width="60">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Ellipse Width="14" Height="14">
|
||||
<Ellipse.Style>
|
||||
<Style TargetType="Ellipse">
|
||||
<Setter Property="Fill" Value="Red"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding Status}" Value="{x:Static model:CCTVStatus.Connected}">
|
||||
<Setter Property="Fill" Value="LimeGreen"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Ellipse.Style>
|
||||
</Ellipse>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="ID" Width="95">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding DeviceId}"
|
||||
Style="{StaticResource GridViewTextBlockStyle}"/>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="CCTV" Width="95">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock
|
||||
Text="{Binding DeviceName}"
|
||||
Style="{StaticResource GridViewTextBlockStyle}"/>
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
|
||||
<!--하단 버튼-->
|
||||
<Grid Grid.Row="2">
|
||||
<Button Padding="0" Content="재생"
|
||||
Style="{StaticResource GeneralButtonStyle}"
|
||||
Margin="0 16 0 0"
|
||||
Width="250" Height="41"
|
||||
Visibility="{Binding BtnVisibilityPlay}"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Bottom"
|
||||
Command="{Binding PlayAllCCTVCommand}">
|
||||
<Button.ToolTip>
|
||||
<ToolTip Content="CCTV 재생"/>
|
||||
</Button.ToolTip>
|
||||
</Button>
|
||||
<Button Padding="0" Content="중지"
|
||||
Style="{StaticResource GeneralButtonStyle}"
|
||||
Margin="0 16 0 0"
|
||||
Width="250" Height="41"
|
||||
Visibility="{Binding BtnVisibilityStop}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Bottom"
|
||||
Command="{Binding StopAllCCTVCommand}">
|
||||
<Button.ToolTip>
|
||||
<ToolTip Content="CCTV 재생"/>
|
||||
</Button.ToolTip>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Border>
|
||||
</md:DrawerHost.RightDrawerContent>
|
||||
</md:DrawerHost>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,507 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.View.EnegyView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.View"
|
||||
xmlns:control="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="940" d:DesignWidth="1650">
|
||||
|
||||
<Border>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="128"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Margin="0 0 0 16" BorderBrush="#3E4C60" BorderThickness="1" CornerRadius="4" Background="#264A60">
|
||||
<UniformGrid Columns="9">
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="총 소비 전력" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="모래여과기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalCirculationPumpEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="순환펌프" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalCirculationPumpEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="히트펌프" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalHeatPumpEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="에어브로와" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalAirBlowerEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="오존발생기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalOzoneGeneratorEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="자외선 살균기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalUVSterilizerEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="오존용해장치" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalOzoneDissolverEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border>
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="배오존장치" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalExcessOzoneDestroyerEnergy, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
</UniformGrid>
|
||||
</Border>
|
||||
|
||||
<md:DrawerHost Grid.Row="1" RightDrawerBackground="Transparent" IsRightDrawerOpen="{Binding IsOpenMode}" OpenMode="Standard">
|
||||
<Border BorderBrush="#1D3649" BorderThickness="0 0 2 0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="40"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<DataGrid ItemsSource="{Binding PagedItems}"
|
||||
Style="{StaticResource DataGridStyle}" Background="Transparent"
|
||||
RowStyle="{StaticResource DataGridRowStyle}" ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
|
||||
helper:DataGridAutoPageSizeBehavior.Enable="True"
|
||||
HorizontalAlignment="Stretch" Margin="0 0 16 0"
|
||||
ColumnWidth="*" RowHeight="30">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Header="시간" Width="90"
|
||||
Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.SandFilterEnergy, StringFormat=\{0:F2\}}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="모래" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="여과기" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="순환펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.CirculationPumpEnergy, StringFormat=\{0:F2\}}"/>
|
||||
<DataGridTextColumn Header="히트펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.HeatPumpEnergy, StringFormat=\{0:F2\}}"/>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.AirBlowerEnergy, StringFormat=\{0:F2\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="에어" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="브로와" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.OzoneGeneratorEnergy, StringFormat=\{0:F2\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="오존" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="발생기" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.UVSterilizerEnergy, StringFormat=\{0:F2\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="자외선" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="살균기" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.OzoneDissolverEnergy, StringFormat=\{0:F2\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="오존용해" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="장치" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.ExcessOzoneDestroyerEnergy, StringFormat=\{0:F2\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="배오존" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="장치" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="총 전력" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding TotalEnergy, StringFormat=\{0:F2\}}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<Grid Grid.Row="1" VerticalAlignment="Center">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Command="{Binding FirstPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageFirst"/>
|
||||
</Button>
|
||||
<Button Command="{Binding PrevPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronLeft"/>
|
||||
</Button>
|
||||
|
||||
<ItemsControl ItemsSource="{Binding PageNumbers}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="32 0" />
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Command="{Binding DataContext.GoToPageCommand,
|
||||
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding}"
|
||||
Style="{StaticResource PageNumButtonStyle}">
|
||||
<Button.Content>
|
||||
<Binding Converter="{StaticResource PageIndexToDisplayConverter}" />
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Button Command="{Binding NextPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronRight"/>
|
||||
</Button>
|
||||
<Button Command="{Binding LastPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageLast"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
<Button Name="btnVisibilityDown" Tag="right"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityRight}">
|
||||
<Path Data="M13.0607 12.1111L8.11067 17.0611L9.52467 18.4751L15.8887 12.1111L9.52467 5.7471L8.11067 7.1611L13.0607 12.1111Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="btnVisibilityUp" Tag="left"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityLeft}">
|
||||
<Path Data="M11.1615 12.1111 L16.11153 17.0611 L14.69753 18.4751 L8.3335 12.1111 L14.69753 5.7471 L16.11153 7.1611 Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
<md:DrawerHost.RightDrawerContent>
|
||||
<Border x:Name="RightDrawerRoot" Width="626" CornerRadius="0 4 4 0" Background="#1D3649">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="358"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Margin="16 16 16 12" CornerRadius="4"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="62"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Margin="24 24 24 0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="그래프" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<ComboBox Margin="0" Height="35" Grid.Column="1"
|
||||
Style="{StaticResource ComboBoxStyle}"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
ItemsSource="{Binding GraphTypes}"
|
||||
SelectedIndex="{Binding SelectedGraphIndex, Mode=TwoWay}"
|
||||
helper:ComboBoxHelper.SelectFirstOnItemsChange="True"
|
||||
IsEditable="False" IsTextSearchEnabled="False"/>
|
||||
</Grid>
|
||||
<Grid Margin="0 10 0 0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="FrameworkElement">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenLine" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenLineNStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenPie" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<StackPanel>
|
||||
<StackPanel Style="{StaticResource VisibleWhenLineNStackArea}">
|
||||
<Grid Margin="0 0 0 10" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="X축" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<TextBlock Text="{Binding SelectedXField.Display}" VerticalAlignment="Center"
|
||||
Grid.Column="1"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_Medium}" Foreground="White"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock VerticalAlignment="Top" Foreground="White">
|
||||
<Run Text="Y축" FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="(복수 선택 가능)" FontSize="14"
|
||||
Foreground="#767676" FontFamily="{StaticResource Pretendard_Medium}"/>
|
||||
</TextBlock>
|
||||
|
||||
<ListBox ItemsSource="{Binding YFieldCandidates}"
|
||||
Grid.Column="1"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
|
||||
helper:MultiSelectBehavior.KeyPath="Key"
|
||||
helper:MultiSelectBehavior.ValuePath="Value"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignFilterChipListBox}"
|
||||
ItemContainerStyle="{StaticResource ListBoxItemStyle}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Display}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource CircleCheckToggleButtonStyle}"
|
||||
Margin="12 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Style="{StaticResource VisibleWhenPie}">
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="필드" VerticalAlignment="Top"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<ListBox ItemsSource="{Binding YFieldCandidates}"
|
||||
Grid.Column="1"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
|
||||
helper:MultiSelectBehavior.KeyPath="Key"
|
||||
helper:MultiSelectBehavior.ValuePath="Value"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignFilterChipListBox}"
|
||||
ItemContainerStyle="{StaticResource ListBoxItemStyle}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Display}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource CircleCheckToggleButtonStyle}"
|
||||
Margin="12 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="집계 방식" VerticalAlignment="Top"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="1">
|
||||
<RadioButton x:Name="rbStatus"
|
||||
GroupName="pie" Margin="0 0 12 0"
|
||||
Foreground="#325C80"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding UseAverage, Converter={StaticResource InverseBoolConverter}, Mode=TwoWay}">
|
||||
<TextBlock Text="합계" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
<RadioButton x:Name="pie"
|
||||
GroupName="pie"
|
||||
Foreground="#325C80"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding UseAverage, Mode=TwoWay}">
|
||||
<TextBlock Text="평균" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="24 0 0 0" Grid.Row="1">
|
||||
<CheckBox IsChecked="{Binding ShowMarkers}" Margin="0 0 12 0"
|
||||
Foreground="#264A60">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="마커" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ShowLegends}" Margin="0 0 12 0"
|
||||
Foreground="#264A60">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="범례" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding IsDonut}" Margin="0 0 12 0"
|
||||
Foreground="#264A60"
|
||||
VerticalContentAlignment="Center">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="도넛모드" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="1"
|
||||
HorizontalAlignment="Right" Margin="0 0 24 24">
|
||||
<Button Content="그래프 생성"
|
||||
Style="{StaticResource GeneralButtonStyle}"
|
||||
Command="{Binding DrawGraphCommand}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="2" Grid.Column="1" Grid.RowSpan="2" Margin="16 0 16 16" CornerRadius="4"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1">
|
||||
<control:GraphControl
|
||||
x:Name="graphControl"
|
||||
Margin="16" DataContext="{Binding GraphControlVM}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</md:DrawerHost.RightDrawerContent>
|
||||
</md:DrawerHost>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,112 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.View.FileListView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.View"
|
||||
xmlns:vm="clr-namespace:SmartAquaViewer.ViewModel"
|
||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="1040" d:DesignWidth="260">
|
||||
|
||||
<UserControl.DataContext>
|
||||
<vm:FileListViewModel/>
|
||||
</UserControl.DataContext>
|
||||
|
||||
<Border Background="#264A60">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="80"/>
|
||||
<!-- Header Row -->
|
||||
<RowDefinition Height="*"/>
|
||||
<!-- File List Row -->
|
||||
</Grid.RowDefinitions>
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" Margin="24 0 0 0">
|
||||
<Border Width="30" Height="30"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0 0 12 0"
|
||||
Background="#4178BE"
|
||||
CornerRadius="2">
|
||||
<Image Source="/Resources/Images/ListImage.png"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Center"
|
||||
Width="24" Height="24"/>
|
||||
</Border>
|
||||
<TextBlock Text="파일 목록" FontFamily="{StaticResource Pretendard_SemiBold}"
|
||||
FontSize="24" FontWeight="Bold" Foreground="White"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
<Button Width="36" Height="36"
|
||||
Margin="24 0" Padding="0"
|
||||
HorizontalAlignment="Right"
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Command="{Binding OpenFileDialogCommand}">
|
||||
<Border Background="#325C80" CornerRadius="25"
|
||||
Width="36" Height="36">
|
||||
<Image Source="/Resources/Images/add_folder.png"
|
||||
Width="24" Height="24"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||
</Border>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<StackPanel.Style>
|
||||
<Style TargetType="StackPanel">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding FileList.Count}" Value="0">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</StackPanel.Style>
|
||||
<Image Source="/Resources/Images/add_folder_gray.png" VerticalAlignment="Top"
|
||||
Width="24" Height="24" Margin="0 0 8 0" Stretch="Fill"/>
|
||||
<TextBlock Text="파일을 업로드하세요."
|
||||
FontSize="20" Foreground="#999999"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"/>
|
||||
</StackPanel>
|
||||
|
||||
<ListView
|
||||
Grid.Row="1" Padding="0"
|
||||
ItemsSource="{Binding FileList}"
|
||||
SelectedItem="{Binding SelectedFile}"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Hidden"
|
||||
BorderThickness="0">
|
||||
<ListView.ItemContainerStyle>
|
||||
<Style TargetType="ListViewItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
</Style>
|
||||
</ListView.ItemContainerStyle>
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border x:Name="bdRoot" Height="56" Margin="24 0 0 0">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="/Resources/Images/file_logo.png"
|
||||
Width="24" Height="24" Margin="0 0 8 0"/>
|
||||
<TextBlock Text="{Binding Name}"
|
||||
FontSize="20" Foreground="White"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<DataTemplate.Triggers>
|
||||
<DataTrigger
|
||||
Value="True"
|
||||
Binding="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListViewItem}}">
|
||||
<Setter TargetName="bdRoot" Property="Background" Value="#325C80"/>
|
||||
</DataTrigger>
|
||||
</DataTemplate.Triggers>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,513 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.View.GreenHouseView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.View"
|
||||
xmlns:control="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="940" d:DesignWidth="1650">
|
||||
|
||||
<UserControl.Resources>
|
||||
<classes:InverseBoolConverter x:Key="InverseBoolConverter"/>
|
||||
<classes:OneBasedConverter x:Key="OneBasedConverter"/>
|
||||
<classes:PageIndexToDisplayConverter x:Key="PageIndexToDisplayConverter"/>
|
||||
<classes:CurrentPageEqualsConverter x:Key="CurrentPageEqualsConverter"/>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Border>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="128"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Margin="0 0 0 16" BorderBrush="#3E4C60" BorderThickness="1" CornerRadius="4" Background="#264A60">
|
||||
<UniformGrid Columns="9">
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="총 배출량" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="모래여과기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalSandFilterGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="순환펌프" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalCirculationPumpGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="히트펌프" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalHeatPumpGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="에어브로와" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalAirBlowerGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="오존발생기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalOzoneGeneratorGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="자외선 살균기" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalUVSterilizerGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border BorderThickness="0 0 1 0" BorderBrush="#99325C80">
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="오존용해장치" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalOzoneDissolverGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
<Border>
|
||||
<TextBlock VerticalAlignment="Center" TextAlignment="Center">
|
||||
<Run Text="배오존장치" Style="{StaticResource FieldNameRunStyle}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="{Binding TotalExcessOzoneDestroyerGreenhouseGas, StringFormat=\{0:F2\}}"
|
||||
Style="{StaticResource FieldValueRunStyle}"/>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
</UniformGrid>
|
||||
</Border>
|
||||
|
||||
<md:DrawerHost Grid.Row="1" RightDrawerBackground="Transparent" IsRightDrawerOpen="{Binding IsOpenMode}" OpenMode="Standard">
|
||||
<Border BorderBrush="#1D3649" BorderThickness="0 0 2 0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="40"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="30"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<DataGrid Style="{StaticResource DataGridStyle}" Background="Transparent"
|
||||
ItemsSource="{Binding PagedItems}"
|
||||
RowStyle="{StaticResource DataGridRowStyle}" ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
|
||||
helper:DataGridAutoPageSizeBehavior.Enable="True"
|
||||
Margin="0 0 16 0"
|
||||
ColumnWidth="*" RowHeight="30"
|
||||
HorizontalAlignment="Stretch">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Header="시간"
|
||||
Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.SandFilterGreenhouseGas, StringFormat=\{0:F3\}}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="모래" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="여과기" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="순환펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.CirculationPumpGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
||||
<DataGridTextColumn Header="히트펌프" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.HeatPumpGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Filtering.AirBlowerGreenhouseGas, StringFormat=\{0:F3\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="에어" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="브로와" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.OzoneGeneratorGreenhouseGas, StringFormat=\{0:F3\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="오존" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="발생기" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.UVSterilizerGreenhouseGas, StringFormat=\{0:F3\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="자외선"/>
|
||||
<TextBlock Text="살균기"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.OzoneDissolverGreenhouseGas, StringFormat=\{0:F3\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="오존용해" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="장치" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding Sterilizing.ExcessOzoneDestroyerGreenhouseGas, StringFormat=\{0:F3\}}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="배오존" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="장치" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="총 배출량" ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
Binding="{Binding TotalGreenhouseGas, StringFormat=\{0:F3\}}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<Grid Grid.Row="1" VerticalAlignment="Center">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Command="{Binding FirstPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageFirst"/>
|
||||
</Button>
|
||||
<Button Command="{Binding PrevPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronLeft"/>
|
||||
</Button>
|
||||
|
||||
<ItemsControl ItemsSource="{Binding PageNumbers}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="32 0"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Command="{Binding DataContext.GoToPageCommand,
|
||||
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding}"
|
||||
Style="{StaticResource PageNumButtonStyle}">
|
||||
<Button.Content>
|
||||
<Binding Converter="{StaticResource PageIndexToDisplayConverter}" />
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Button Command="{Binding NextPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronRight"/>
|
||||
</Button>
|
||||
<Button Command="{Binding LastPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageLast"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Column="1">
|
||||
<Button Name="btnVisibilityDown" Tag="right"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityRight}">
|
||||
<Path Data="M13.0607 12.1111L8.11067 17.0611L9.52467 18.4751L15.8887 12.1111L9.52467 5.7471L8.11067 7.1611L13.0607 12.1111Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="btnVisibilityUp" Tag="left"
|
||||
Style="{StaticResource VerticalTrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityLeft}">
|
||||
<Path Data="M11.1615 12.1111 L16.11153 17.0611 L14.69753 18.4751 L8.3335 12.1111 L14.69753 5.7471 L16.11153 7.1611 Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="7.78" Height="12.728"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
<md:DrawerHost.RightDrawerContent>
|
||||
<Border x:Name="RightDrawerRoot" Width="626" CornerRadius="0 4 4 0" Background="#1D3649">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="358"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Margin="16 16 16 12" CornerRadius="4"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="62"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Margin="24 24 24 0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="그래프" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<ComboBox Height="35" Grid.Column="1"
|
||||
Style="{StaticResource ComboBoxStyle}"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
ItemsSource="{Binding GraphTypes}"
|
||||
SelectedIndex="{Binding SelectedGraphIndex, Mode=TwoWay}"
|
||||
helper:ComboBoxHelper.SelectFirstOnItemsChange="True"
|
||||
IsEditable="False" IsTextSearchEnabled="False"/>
|
||||
</Grid>
|
||||
<Grid Margin="0 10 0 0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="FrameworkElement">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenLine" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenLineNStackArea" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenPie" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<StackPanel>
|
||||
<StackPanel Style="{StaticResource VisibleWhenLineNStackArea}">
|
||||
<Grid Margin="0 0 0 10" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="X축" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<TextBlock Text="{Binding SelectedXField.Display}" VerticalAlignment="Center"
|
||||
Grid.Column="1"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_Medium}" Foreground="White"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock VerticalAlignment="Top" Foreground="White">
|
||||
<Run Text="Y축" FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="(복수 선택 가능)" FontSize="14"
|
||||
Foreground="#767676" FontFamily="{StaticResource Pretendard_Medium}"/>
|
||||
</TextBlock>
|
||||
|
||||
<ListBox ItemsSource="{Binding YFieldCandidates}"
|
||||
Grid.Column="1"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
|
||||
helper:MultiSelectBehavior.KeyPath="Key"
|
||||
helper:MultiSelectBehavior.ValuePath="Value"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignFilterChipListBox}"
|
||||
ItemContainerStyle="{StaticResource ListBoxItemStyle}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Display}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource CircleCheckToggleButtonStyle}"
|
||||
Margin="12 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Style="{StaticResource VisibleWhenPie}">
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="필드" VerticalAlignment="Top"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<ListBox ItemsSource="{Binding YFieldCandidates}"
|
||||
Grid.Column="1"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
|
||||
helper:MultiSelectBehavior.KeyPath="Key"
|
||||
helper:MultiSelectBehavior.ValuePath="Value"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignFilterChipListBox}"
|
||||
ItemContainerStyle="{StaticResource ListBoxItemStyle}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Display}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource CircleCheckToggleButtonStyle}"
|
||||
Margin="12 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="146"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="집계 방식" VerticalAlignment="Top"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="1">
|
||||
<RadioButton x:Name="rbStatus"
|
||||
GroupName="pie" Margin="0 0 12 0"
|
||||
Foreground="#325C80"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding UseAverage, Converter={StaticResource InverseBoolConverter}, Mode=TwoWay}">
|
||||
<TextBlock Text="합계" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
<RadioButton x:Name="pie"
|
||||
GroupName="pie"
|
||||
Foreground="#325C80"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding UseAverage, Mode=TwoWay}">
|
||||
<TextBlock Text="평균" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="24 0 0 0" Grid.Row="1">
|
||||
<CheckBox IsChecked="{Binding ShowMarkers}" Margin="0 0 12 0" Foreground="#264A60">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="마커" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding ShowLegends}" Margin="0 0 12 0" Foreground="#264A60">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STACKAREA">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="범례" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
<CheckBox IsChecked="{Binding IsDonut}" Margin="0 0 12 0"
|
||||
Foreground="#264A60"
|
||||
VerticalContentAlignment="Center">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="PIE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="도넛모드" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0 0 24 24"
|
||||
Grid.Row="1" HorizontalAlignment="Right">
|
||||
<Button Content="그래프 생성"
|
||||
Style="{StaticResource GeneralButtonStyle}"
|
||||
FontWeight="Bold" Command="{Binding DrawGraphCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
<Border Grid.Row="2" Grid.Column="1" Grid.RowSpan="2" Margin="16 0 16 16" CornerRadius="4"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1">
|
||||
<control:GraphControl
|
||||
x:Name="graphControl"
|
||||
Margin="16" DataContext="{Binding GraphControlVM}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</md:DrawerHost.RightDrawerContent>
|
||||
</md:DrawerHost>
|
||||
</Grid>
|
||||
</Border>
|
||||
</UserControl>
|
||||
@ -1,878 +0,0 @@
|
||||
<UserControl x:Class="SmartAquaViewer.View.MonitoringView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:SmartAquaViewer.View"
|
||||
xmlns:control="clr-namespace:SmartAquaViewer.Controls"
|
||||
xmlns:helper="clr-namespace:SmartAquaViewer.Helper"
|
||||
xmlns:model="clr-namespace:SmartAquaViewer.Model"
|
||||
xmlns:classes="clr-namespace:SmartAquaViewer.Classes"
|
||||
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="940" d:DesignWidth="1650">
|
||||
|
||||
<Border>
|
||||
<md:DrawerHost BottomDrawerBackground="Transparent" IsBottomDrawerOpen="{Binding IsOpenMode}" OpenMode="Standard">
|
||||
<Border BorderBrush="#1D3649" BorderThickness="0 0 0 2">
|
||||
<Grid Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="80"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="60"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="0 0 0 12">
|
||||
<!--<Grid.Background>
|
||||
<ImageBrush ImageSource="/Resources/Images/top_bg.png" Stretch="Fill"/>
|
||||
</Grid.Background>-->
|
||||
<control:SegmentedControl x:Name="segmentedControl" HorizontalAlignment="Left"
|
||||
SelectedTab="{Binding SelectedTab, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</Grid>
|
||||
|
||||
<DataGrid x:Name="dgTanks" ItemsSource="{Binding TanksPager.PagedItems}"
|
||||
Style="{StaticResource DataGridStyle}"
|
||||
RowStyle="{StaticResource DataGridRowStyle}"
|
||||
ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
|
||||
helper:DataGridAutoPageSizeBehavior.Enable="True"
|
||||
helper:DataGridAutoPageSizeBehavior.Pager="{Binding TanksPager}"
|
||||
helper:DataGridAutoPageSizeBehavior.Suspend="{Binding IsOpenMode}"
|
||||
helper:DataGridAutoPageSizeBehavior.ThrottleMs="120"
|
||||
Grid.Row="1" Margin="0"
|
||||
ColumnWidth="*" RowHeight="30"
|
||||
HorizontalAlignment="Stretch">
|
||||
<DataGrid.Columns>
|
||||
<!-- 측정 시각 -->
|
||||
<DataGridTextColumn
|
||||
Header="시간" Width="84.8"
|
||||
Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
|
||||
<!-- Tank 값들 -->
|
||||
<DataGridTextColumn Header="번호" Binding="{Binding Tanks[0].Number}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[0].DOValue, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="DO" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mg/L)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="pH" Binding="{Binding Tanks[0].PH, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[0].ORP, StringFormat=\{0:F0\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="ORP" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mV)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[0].Temperature, StringFormat=\{0:F1\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="온도" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(℃)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[0].FlowRate, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="유량" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(m³/s)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
|
||||
<DataGridTextColumn Header="번호" Binding="{Binding Tanks[1].Number}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[1].DOValue, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="DO" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mg/L)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="pH" Binding="{Binding Tanks[1].PH, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[1].ORP, StringFormat=\{0:F0\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="ORP" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mV)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[1].Temperature, StringFormat=\{0:F1\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="온도" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(℃)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[1].FlowRate, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="유량" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(m³/s)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
|
||||
<DataGridTextColumn Header="번호" Binding="{Binding Tanks[2].Number}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[2].DOValue, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="DO" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mg/L)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="pH" Binding="{Binding Tanks[2].PH, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[2].ORP, StringFormat=\{0:F0\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="ORP" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(mV)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[2].Temperature, StringFormat=\{0:F1\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="온도" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(℃)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Tanks[2].FlowRate, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="유량" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="(m³/s)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<DataGrid ItemsSource="{Binding PagedItems}" x:Name="dgFilter"
|
||||
Style="{StaticResource DataGridStyle}"
|
||||
ColumnWidth="*" RowHeight="30"
|
||||
helper:DataGridAutoPageSizeBehavior.Enable="True"
|
||||
helper:DataGridAutoPageSizeBehavior.Suspend="{Binding IsOpenMode}"
|
||||
helper:DataGridAutoPageSizeBehavior.ThrottleMs="120"
|
||||
Grid.Row="1" Margin="0"
|
||||
Background="Transparent"
|
||||
RowStyle="{StaticResource DataGridRowStyle}"
|
||||
ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Header="시간"
|
||||
Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SandFilterPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="모래여과기" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="전원" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SumpPH}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="섬프탱크" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="pH" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SumpORP, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="섬프탱크" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="ORP(mV)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SumpWaterLevel, StringFormat=\{0:F0\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="섬프탱크" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="수위(m)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SumpFlowRate, StringFormat=\{0:F1\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="섬프탱크" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="유량(m³/s)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.SumpTemperature, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="섬프탱크" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="수온(°C)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.CirculationPumpPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="순환펌프" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="전원" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.InverterControllerStatus}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="인버터 제어기" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="상태" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.FlowRate, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="순환펌프" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="유량(m³/s)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.HeatPumpPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="히트펌프" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="전원" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.HeatPumpTemperature, StringFormat=\{0:F2\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="히트펌프" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="온도(°C)" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Binding="{Binding Filtering.AirBlowerPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}">
|
||||
<DataGridTextColumn.Header>
|
||||
<StackPanel>
|
||||
<TextBlock Text="에어브로와" HorizontalAlignment="Center"/>
|
||||
<TextBlock Text="전원" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<DataGrid ItemsSource="{Binding PagedItems}" x:Name="dgSterilizer"
|
||||
Style="{StaticResource DataGridStyle}"
|
||||
ColumnWidth="*" RowHeight="30"
|
||||
helper:DataGridAutoPageSizeBehavior.Enable="True"
|
||||
helper:DataGridAutoPageSizeBehavior.Pager="{Binding TanksPager}"
|
||||
helper:DataGridAutoPageSizeBehavior.Suspend="{Binding IsOpenMode}"
|
||||
Grid.Row="1" Margin="0"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
RowStyle="{StaticResource DataGridRowStyle}"
|
||||
ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Header="시간"
|
||||
Binding="{Binding RecordedTime, StringFormat=\{0:HH:mm:ss\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
|
||||
<DataGridTextColumn Header="오존 발생기 전원" Binding="{Binding Sterilizing.OzoneGeneratorPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"
|
||||
CellStyle="{StaticResource HighlightLeftBorderCellStyle}"
|
||||
HeaderStyle="{StaticResource HighlightLeftBorderHeaderStyle}"/>
|
||||
<DataGridTextColumn Header="자외선 살균기 ID" Binding="{Binding Sterilizing.UVSterilizerId}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Header="자외선 살균기 전원" Binding="{Binding Sterilizing.UVSterilizerPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Header="오존용해장치 전원" Binding="{Binding Sterilizing.OzoneDissolverPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Header="오존용해장치 압력(kPa)" Binding="{Binding Sterilizing.OzoneDissolverPressure, StringFormat=\{0:F1\}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
<DataGridTextColumn Header="배오존장치 전원" Binding="{Binding Sterilizing.ExcessOzoneDestroyerPower, Converter={StaticResource BoolToPowerConverter}}"
|
||||
ElementStyle="{StaticResource DataGridElmenetStyle}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.Style>
|
||||
<Style TargetType="Grid">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="{x:Static model:MonitorTab.Tank}">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Style>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Command="{Binding TanksPager.FirstPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageFirst"/>
|
||||
</Button>
|
||||
<Button Command="{Binding TanksPager.PrevPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronLeft"/>
|
||||
</Button>
|
||||
|
||||
<ItemsControl DataContext="{Binding TanksPager}"
|
||||
ItemsSource="{Binding PageNumbers}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="32 0"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Style="{StaticResource PageNumButtonStyle}"
|
||||
Command="{Binding DataContext.GoToPageCommand,
|
||||
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding}">
|
||||
<Button.Content>
|
||||
<!-- 각 아이템은 int(0,1,2,...) 이므로 그대로 컨버터 -->
|
||||
<Binding Converter="{StaticResource PageIndexToDisplayConverter}" />
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Button Command="{Binding TanksPager.NextPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronRight"/>
|
||||
</Button>
|
||||
<Button Command="{Binding TanksPager.LastPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageLast"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- (2) 필터/살균기 공용 페이지바 -->
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.Style>
|
||||
<Style TargetType="Grid">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="{x:Static model:MonitorTab.Tank}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Style>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Button Command="{Binding FirstPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}"
|
||||
Margin="4,0">
|
||||
<md:PackIcon Kind="PageFirst"/>
|
||||
</Button>
|
||||
<Button Command="{Binding PrevPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronLeft"/>
|
||||
</Button>
|
||||
|
||||
<ItemsControl ItemsSource="{Binding PageNumbers}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal" Margin="32 0"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Style="{StaticResource PageNumButtonStyle}"
|
||||
Command="{Binding DataContext.GoToPageCommand,
|
||||
RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding}">
|
||||
<Button.Content>
|
||||
<Binding Converter="{StaticResource PageIndexToDisplayConverter}" />
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<Button Command="{Binding NextPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="ChevronRight"/>
|
||||
</Button>
|
||||
<Button Command="{Binding LastPageCommand}"
|
||||
Style="{StaticResource PageCommandButtonStyle}">
|
||||
<md:PackIcon Kind="PageLast"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="3" VerticalAlignment="Bottom">
|
||||
<Button Name="btnVisibilityDown" Tag="down"
|
||||
Style="{StaticResource TrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Bottom" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityDown}">
|
||||
<Path Data="M6.364 4.94983L1.414 -0.000167768L3.54069e-07 1.41383L6.364 7.77783L12.728 1.41383L11.314 -0.000167217L6.364 4.94983Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="12.728" Height="7.78"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="btnVisibilityUp" Tag="up"
|
||||
Style="{StaticResource TrapezoidButtonStyle}" Command="{Binding ChangeDrawerStatusCommand}"
|
||||
VerticalAlignment="Bottom" HorizontalAlignment="Left" Visibility="{Binding BtnVisibilityUp}">
|
||||
<Path Data="M6.364 2.828L1.414 7.778L0 6.364L6.364 0L12.728 6.364L11.314 7.778Z"
|
||||
Fill="White" Stretch="Uniform"
|
||||
Width="12.728" Height="7.78"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
<md:DrawerHost.BottomDrawerContent>
|
||||
<Border x:Name="BottomDrawerRoot" Height="400" CornerRadius="0 0 4 4" Background="#1D3649">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="520"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Margin="16 16 12 16" CornerRadius="5"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1" >
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="62"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.Resources>
|
||||
<Style TargetType="FrameworkElement">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenTank" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="Tank">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<StackPanel>
|
||||
<Grid Margin="24 24 24 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="그래프" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
|
||||
<ComboBox Margin="15 0 0 0" Height="35" Grid.Column="1"
|
||||
Style="{StaticResource ComboBoxStyle}"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
ItemsSource="{Binding GraphTypes}"
|
||||
SelectedIndex="{Binding SelectedGraphIndex, Mode=TwoWay}"
|
||||
helper:ComboBoxHelper.SelectFirstOnItemsChange="True"
|
||||
IsEditable="False" IsTextSearchEnabled="False"/>
|
||||
</Grid>
|
||||
<Grid Margin="24 0 24 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="X축" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<ComboBox Margin="15 0 0 0" Height="35" Grid.Column="1"
|
||||
Style="{StaticResource ComboBoxStyle}"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
ItemsSource="{Binding XFieldCandidates}"
|
||||
SelectedItem="{Binding SelectedXField}"
|
||||
DisplayMemberPath="Display"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="24 0 24 10" Style="{StaticResource VisibleWhenTank}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock VerticalAlignment="Center" Padding="0"
|
||||
Foreground="White">
|
||||
<Run Text="수조" FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="(복수 선택 가능)" FontFamily="{StaticResource Pretendard_Medium}" FontSize="14" Foreground="#767676"/>
|
||||
</TextBlock>
|
||||
|
||||
<ListBox ItemsSource="{Binding TankGroups}"
|
||||
Grid.Column="1" Margin="15 0 0 0"
|
||||
VerticalAlignment="Center"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedDictionary="{Binding SelectedWaterTanks}"
|
||||
helper:MultiSelectBehavior.KeyPath="Key"
|
||||
helper:MultiSelectBehavior.ValuePath="Value"
|
||||
FontSize="18" FontWeight="Bold"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource MaterialDesignChoiceChipListBox}"
|
||||
ItemContainerStyle="{StaticResource TransparentListBoxItemStyle}"
|
||||
Background="Transparent">
|
||||
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Key}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource SquareCheckToggleButtonStyle}"
|
||||
Margin="0 0 20 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="24 0">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="FrameworkElement">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
<!-- 보이기 토글용 스타일 -->
|
||||
<Style x:Key="VisibleWhenLine" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenStep" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STEP">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenScatter" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="SCATTER">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenBox" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="BOX">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="VisibleWhenTime" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedXField.Name}" Value="RecordedTime">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
<Style x:Key="CollpaseWhenLineAndNotTank" TargetType="FrameworkElement" BasedOn="{StaticResource {x:Type FrameworkElement}}">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="Filter">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="Sterilizer">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<!-- LINE -->
|
||||
<StackPanel Style="{StaticResource VisibleWhenLine}">
|
||||
<Grid Style="{StaticResource VisibleWhenLine}" Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Y축" VerticalAlignment="Center" Style="{StaticResource VisibleWhenLine}"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<ComboBox ItemsSource="{Binding YFieldCandidates}"
|
||||
SelectedItem="{Binding SelectedYField, Mode=TwoWay}"
|
||||
Grid.Column="1"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
DisplayMemberPath="Display" Margin="15 0 0 0"
|
||||
Height="35" Style="{StaticResource ComboBoxStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<!--STEP-->
|
||||
<StackPanel Style="{StaticResource VisibleWhenStep}">
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="필드 종류" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Left" Margin="15 0">
|
||||
<RadioButton x:Name="rbStatus"
|
||||
GroupName="strpPlot" Margin="0 0 16 0"
|
||||
Foreground="#325C80"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding SelectedKind, Mode=TwoWay,
|
||||
Converter={StaticResource EnumEqualsConverter},
|
||||
ConverterParameter={x:Static model:StepFieldKind.Status}}">
|
||||
<TextBlock Text="전원/상태" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
<RadioButton x:Name="rbValue"
|
||||
GroupName="strpPlot"
|
||||
Foreground="#325C80"
|
||||
Style="{StaticResource MaterialDesignUserForegroundRadioButton}"
|
||||
IsChecked="{Binding SelectedKind, Mode=TwoWay,
|
||||
Converter={StaticResource EnumEqualsConverter},
|
||||
ConverterParameter={x:Static model:StepFieldKind.Sensor}}">
|
||||
<TextBlock Text="센서 값" Style="{StaticResource RadioBtnContentTextBlockStyle}"/>
|
||||
</RadioButton>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock VerticalAlignment="Top" Foreground="White">
|
||||
<Run Text="Y축" FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}"/>
|
||||
<LineBreak/>
|
||||
<Run Text="(복수 선택 가능)" FontSize="14" Foreground="#767676"/>
|
||||
</TextBlock>
|
||||
<!-- SelectedItems 바인딩을 위한 간단 Behavior는 아래 3) 참고 -->
|
||||
<Border CornerRadius="10"
|
||||
Margin="15 0 0 0" Grid.Column="1">
|
||||
<ListBox ItemsSource="{Binding YFieldCandidates}"
|
||||
SelectionMode="Extended"
|
||||
helper:MultiSelectBehavior.SelectedItems="{Binding SelectedYFields, Mode=OneWay}"
|
||||
Height="Auto" Background="White"
|
||||
Style="{StaticResource MaterialDesignFilterChipListBox}"
|
||||
ItemContainerStyle="{StaticResource ListBoxItemStyle}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ToggleButton Content="{Binding Display}"
|
||||
Focusable="False"
|
||||
IsChecked="{Binding IsSelected,
|
||||
RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
|
||||
Style="{StaticResource CircleCheckToggleButtonStyle}"
|
||||
Margin="12 0"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Border>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<!-- SCATTER: 단일 Y + 옵션 -->
|
||||
<StackPanel Style="{StaticResource VisibleWhenScatter}">
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Y축" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<ComboBox ItemsSource="{Binding YFieldCandidates}"
|
||||
SelectedItem="{Binding SelectedYField}"
|
||||
DisplayMemberPath="Display" Height="35"
|
||||
Grid.Column="1" Grid.ColumnSpan="3" Margin="15 0 0 0"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource ComboBoxStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="마커 크기" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<Slider Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="15 0 0 0"
|
||||
Minimum="1" Maximum="15" Value="{Binding ScatterMarkerSize}" Width="280" IsSnapToTickEnabled="True" TickFrequency="1"
|
||||
Style="{StaticResource CustomSliderStyle}"/>
|
||||
<TextBlock Text="{Binding ScatterMarkerSize}" Margin="15 0"
|
||||
Grid.Column="2" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_Medium}" Foreground="White"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<!-- BOX: 값 필드 + 그룹 필드 + 옵션 -->
|
||||
<StackPanel Style="{StaticResource VisibleWhenBox}">
|
||||
<Grid Style="{StaticResource VisibleWhenTime}" Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="시간 범위" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<Slider Margin="15 0 0 0" Grid.Column="1"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Left"
|
||||
Minimum="1" Maximum="24" TickFrequency="1" IsSnapToTickEnabled="True"
|
||||
Value="{Binding BoxTimeSpan}" Width="280"
|
||||
Style="{StaticResource CustomSliderStyle}"/>
|
||||
<TextBlock Text="{Binding BoxTimeSpan}"
|
||||
Margin="15 0" Grid.Column="2"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Right"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_Medium}" Foreground="White"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="값 필드" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<ComboBox ItemsSource="{Binding YFieldCandidates}"
|
||||
SelectedItem="{Binding SelectedYField}"
|
||||
DisplayMemberPath="Display" Height="35"
|
||||
Grid.Column="1" Margin="15 0 0 0"
|
||||
FontFamily="{StaticResource Pretendard_Medium}"
|
||||
Style="{StaticResource ComboBoxStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Margin="0 0 0 10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="110"/>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="박스 너비" VerticalAlignment="Center"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_SemiBold}" Foreground="White"/>
|
||||
<Slider Margin="15 0 0 0" Grid.Column="1"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Left"
|
||||
Minimum="0.1" Maximum="1.0" TickFrequency="0.05" IsSnapToTickEnabled="True"
|
||||
Value="{Binding BoxWidth}" Width="280"
|
||||
Style="{StaticResource CustomSliderStyle}"/>
|
||||
<TextBlock Text="{Binding BoxWidth, StringFormat=F2}"
|
||||
Margin="15 0" Grid.Column="2"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Right"
|
||||
FontSize="18" FontFamily="{StaticResource Pretendard_Medium}" Foreground="White"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Grid.Row="1" Margin="24 0 0 0">
|
||||
<CheckBox IsChecked="{Binding ShowLegends}"
|
||||
Foreground="#264A60"
|
||||
Margin="0 0 4 0" VerticalContentAlignment="Center">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="Filter">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedTab}" Value="Sterilizer">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="범례" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
|
||||
<CheckBox IsChecked="{Binding ShowMarkers}"
|
||||
Foreground="#264A60"
|
||||
Margin="0 0 4 0" VerticalContentAlignment="Center">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="LINE">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="STEP">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="마커" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
|
||||
<CheckBox IsChecked="{Binding ShowRegression}"
|
||||
Foreground="#264A60"
|
||||
Margin="0 0 4 0" VerticalContentAlignment="Center">
|
||||
<CheckBox.Style>
|
||||
<Style TargetType="CheckBox" BasedOn="{StaticResource SquareCheckToggleButtonStyle}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedGraphType}" Value="SCATTER">
|
||||
<Setter Property="Visibility" Value="Visible"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</CheckBox.Style>
|
||||
<TextBlock Text="회귀선" Style="{StaticResource CheckBoxContentTextBlockStyle}"/>
|
||||
</CheckBox>
|
||||
</StackPanel>
|
||||
|
||||
<Button Content="그래프 생성" Grid.Row="1" HorizontalAlignment="Right"
|
||||
Style="{StaticResource GeneralButtonStyle}"
|
||||
Margin="0 0 24 24" Padding="20 0"
|
||||
Command="{Binding DrawGraphCommand}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Column="1" Margin="0 16 12 16" CornerRadius="5"
|
||||
Background="#152935" BorderBrush="#325C80" BorderThickness="1">
|
||||
<control:GraphControl x:Name="graphControl"
|
||||
Margin="16 12" DataContext="{Binding GraphControlVM}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</md:DrawerHost.BottomDrawerContent>
|
||||
</md:DrawerHost>
|
||||
</Border>
|
||||
</UserControl>
|
||||