diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-02-19 16:09:57 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-02-19 16:09:57 +0200 |
| commit | f7b8f6d9d43f82134c8d81cbff71a42b3609b4c5 (patch) | |
| tree | 228bdb4239ada049a1933fc9997ee24db0e0943b /Software | |
| parent | 54d607cb361d40eccf2d31da2305423360cc4b09 (diff) | |
| download | Tango-f7b8f6d9d43f82134c8d81cbff71a42b3609b4c5.tar.gz Tango-f7b8f6d9d43f82134c8d81cbff71a42b3609b4c5.zip | |
PPC Job Progress Redesign & Gradients.
Diffstat (limited to 'Software')
5 files changed, 208 insertions, 58 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs index 5298cf096..2004d60b7 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModelLocator.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.DI; +using Tango.PPC.Common.Build; using Tango.PPC.Jobs.Dialogs; using Tango.PPC.Jobs.ViewModels; @@ -21,7 +22,10 @@ namespace Tango.PPC.Jobs TangoIOC.Default.Register<JobSummeryViewVM>(); TangoIOC.Default.Register<JobViewVM>(); TangoIOC.Default.Register<TwineCatalogViewVM>(); - TangoIOC.Default.Register<JobProgressViewVM>(); + if (TangoIOC.Default.GetInstance<IBuildProvider>().BuildType == BuildType.TS1800) + { + TangoIOC.Default.Register<JobProgressViewVM>(); + } TangoIOC.Default.Register<ColorSelectionViewVM>(); } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobProgressViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobProgressViewVM.cs index 112d6d6c6..3dccd812e 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobProgressViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/ViewModels/JobProgressViewVM.cs @@ -1,10 +1,14 @@ using System; using System.Collections.Generic; +using System.Data.Entity; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL; using Tango.BL.Entities; using Tango.BL.Enumerations; +using Tango.ColorConversion; using Tango.Core.Commands; using Tango.Integration.Operation; using Tango.Logging; @@ -28,6 +32,9 @@ namespace Tango.PPC.Jobs.ViewModels { private StopPrintingButton _stop_job_btn; private JobHandler _handler; + private List<ColorSpace> _colorSpaces; + private bool _conversion_Busy; + private bool _printingEnded; #region Properties @@ -38,12 +45,15 @@ namespace Tango.PPC.Jobs.ViewModels public Job Job { get { return _job; } - set { _job = value; - if(_job == null) + set + { + _job = value; + if (_job == null) { IsDyeingProcess = false; } - RaisePropertyChangedAuto(); } + RaisePropertyChangedAuto(); + } } private RunningJobStatus _runningJobStatus; @@ -53,9 +63,10 @@ namespace Tango.PPC.Jobs.ViewModels public RunningJobStatus RunningJobStatus { get { return _runningJobStatus; } - set { + set + { _runningJobStatus = value; - if(_runningJobStatus == null) + if (_runningJobStatus == null) { IsDyeingProcess = false; } @@ -63,6 +74,14 @@ namespace Tango.PPC.Jobs.ViewModels } } + private bool _displayInputOutput; + public bool DisplayInputOutput + { + get { return _displayInputOutput; } + set { _displayInputOutput = value; RaisePropertyChangedAuto(); } + } + + private bool _isDisplayJobOutline; /// <summary> /// Gets or sets a value indicating whether to display the job outline. @@ -112,7 +131,27 @@ namespace Tango.PPC.Jobs.ViewModels } } - public JobBrushStop JobBrushStop { get; set; } + private JobBrushStop _jobBrushStop; + public JobBrushStop JobBrushStop + { + get { return _jobBrushStop; } + set + { + if (_jobBrushStop != value) + { + _jobBrushStop = value; + + RaisePropertyChanged(nameof(CyanOutput)); + RaisePropertyChanged(nameof(LightCyanOutput)); + RaisePropertyChanged(nameof(MagentaOutput)); + RaisePropertyChanged(nameof(LightMagentaOutput)); + RaisePropertyChanged(nameof(YellowOutput)); + RaisePropertyChanged(nameof(LightYellowOutput)); + RaisePropertyChanged(nameof(BlackOutput)); + } + } + } + public double CyanOutput { @@ -204,17 +243,8 @@ namespace Tango.PPC.Jobs.ViewModels protected void OnUpdateCurrentBrush() { - CurrentBrushStop.SetLiquidVolumes(MachineProvider.Machine.Configuration, Job.Rml, MachineProvider.MachineOperator.CurrentProcessParameters); - + CurrentBrushStop?.SetLiquidVolumes(MachineProvider.Machine.Configuration, Job.Rml, MachineProvider.MachineOperator.CurrentProcessParameters); RaisePropertyChanged(nameof(CurrentBrushStop)); - - RaisePropertyChanged(nameof(CyanOutput)); - RaisePropertyChanged(nameof(LightCyanOutput)); - RaisePropertyChanged(nameof(MagentaOutput)); - RaisePropertyChanged(nameof(LightMagentaOutput)); - RaisePropertyChanged(nameof(YellowOutput)); - RaisePropertyChanged(nameof(LightYellowOutput)); - RaisePropertyChanged(nameof(BlackOutput)); } private double GetVolumeLiquidType(LiquidTypes liquidType) @@ -238,10 +268,22 @@ namespace Tango.PPC.Jobs.ViewModels /// <summary> /// Called when the application has been started. /// </summary> - public override void OnApplicationStarted() + public override async void OnApplicationStarted() { MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted; MachineProvider.MachineOperator.PrintingEnded += MachineOperator_PrintingEnded; + + try + { + using (var db = ObservablesContext.CreateDefault()) + { + _colorSpaces = await db.ColorSpaces.ToListAsync(); + } + } + catch (Exception ex) + { + LogManager.Log(ex); + } } /// <summary> @@ -279,8 +321,12 @@ namespace Tango.PPC.Jobs.ViewModels /// <param name="e">The <see cref="PrintingEventArgs"/> instance containing the event data.</param> private void MachineOperator_PrintingStarted(object sender, PrintingEventArgs e) { + DisplayInputOutput = false; + _printingEnded = false; _handler = e.JobHandler; Job = e.Job; + CurrentBrushStop = null; + JobBrushStop = null; e.JobHandler.StatusChanged += JobHandler_StatusChanged; e.JobHandler.SpoolChangeRequired += JobHandler_SpoolChangeRequired; e.JobHandler.Stopped += JobHandler_Stopped; @@ -292,6 +338,9 @@ namespace Tango.PPC.Jobs.ViewModels private void MachineOperator_PrintingEnded(object sender, PrintingEventArgs e) { + _printingEnded = true; + CurrentBrushStop = RunningJobStatus.CurrentSegment.BrushStops.OrderBy(x => x.StopIndex).Last(); + LogManager.Log("Printing ended, popping job stop button..."); if (_stop_job_btn != null) @@ -348,46 +397,133 @@ namespace Tango.PPC.Jobs.ViewModels /// <param name="e">The e.</param> private void JobHandler_StatusChanged(object sender, RunningJobStatus e) { - InvokeUI(() => + InvokeUI(async () => { RunningJobStatus = e; IsDyeingProcess = (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null); - if (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null) - { - if (_runningJobStatus.CurrentSegment.IsInterSegment) - { - CurrentBrushStop = _runningJobStatus.CurrentSegment.BrushStops.FirstOrDefault(); - JobBrushStop = null; - } - else + if (RunningJobStatus != null && RunningJobStatus.CurrentSegment != null) { - var realsegmIndex = 1; - if (Job.EnableInterSegment && Job.InterSegmentLength > 0) + + try { - int segmentIndex = _runningJobStatus.CurrentSegment.SegmentIndex - (Job.EffectiveSegments.Count * RunningJobStatus.CurrentUnit); - if (RunningJobStatus.CurrentUnit > 0) + if (_runningJobStatus.CurrentSegment.IsInterSegment) + { + var stop = _runningJobStatus.CurrentSegment.BrushStops.FirstOrDefault(); + stop.ColorSpace = CurrentBrushStop.ColorSpace; + CurrentBrushStop = stop; + JobBrushStop = null; + } + else { - segmentIndex -= RunningJobStatus.CurrentUnit;// inter segment between units + var realsegmIndex = 1; + if (Job.EnableInterSegment && Job.InterSegmentLength > 0) + { + int segmentIndex = _runningJobStatus.CurrentSegment.SegmentIndex - (Job.EffectiveSegments.Count * RunningJobStatus.CurrentUnit); + if (RunningJobStatus.CurrentUnit > 0) + { + segmentIndex -= RunningJobStatus.CurrentUnit;// inter segment between units + } + realsegmIndex = (int)(segmentIndex / 2) + 1; + } + else + { + realsegmIndex = Math.Max(_runningJobStatus.CurrentSegment.SegmentIndex - (Job.Segments.Count * RunningJobStatus.CurrentUnit), 0); + } + + var segment = Job.Segments.FirstOrDefault(x => x.SegmentIndex == realsegmIndex); + JobSegment jobSegment = null; + if (segment != null) + { + if (_handler.JobTicket.Segments.Count > 0) + { + jobSegment = _handler.JobTicket.Segments[Job.OrderedSegments.IndexOf(segment)]; + if (jobSegment.BrushStops.Count == 1) + { + JobBrushStop = jobSegment.BrushStops.First(); + } + else if (jobSegment.BrushStops.Count > 1) + { + JobBrushStop = jobSegment.BrushStops.Last(x => x.OffsetMeters <= e.CurrentSegment.Progress); + } + else + { + JobBrushStop = null; + } + } + } + + + if (segment != null && jobSegment != null && jobSegment.BrushStops.Count > 1) + { + if (!_conversion_Busy) + { + var brushStop = RunningJobStatus.CurrentSegment.FirstBrushStop; + await ApplyJobBrushStopToBrushStop(JobBrushStop, brushStop); + + if (!_printingEnded) + { + _currentBrushStop = brushStop; + RaisePropertyChanged(nameof(CurrentBrushStop)); + } + } + } + else + { + CurrentBrushStop = RunningJobStatus.CurrentSegment.FirstBrushStop; + } + + } - realsegmIndex = (int)(segmentIndex / 2) + 1; } - else + catch (Exception ex) { - realsegmIndex = Math.Max(_runningJobStatus.CurrentSegment.SegmentIndex - (Job.Segments.Count * RunningJobStatus.CurrentUnit), 0); + LogManager.Log(ex, "Error displaying job progress input output."); } - var segment = Job.Segments.FirstOrDefault(x => x.SegmentIndex == realsegmIndex); - if (segment != null) + DisplayInputOutput = true; + } + }); + } + + private async Task ApplyJobBrushStopToBrushStop(JobBrushStop stop, BrushStop s) + { + _conversion_Busy = true; + + foreach (var dispenser in stop.Dispensers) + { + s.SetVolume(dispenser.Index, dispenser.Volume); + } + + s.SetLiquidVolumes(MachineProvider.Machine.Configuration, Job.Rml, MachineProvider.MachineOperator.CurrentProcessParameters); + + foreach (var liquidVolume in s.LiquidVolumes.Where(x => x.IdsPack.LiquidType.IsLightInk && x.Volume > 0).ToList()) + { + var darkInk = s.LiquidVolumes.FirstOrDefault(x => x.IdsPack.LiquidType.Code == liquidVolume.IdsPack.LiquidType.DarkInkCode); + if (darkInk != null) + { + darkInk.Volume = liquidVolume.Volume / 10d; + liquidVolume.Volume = 0; + } + } + + if (_colorSpaces != null) + { + if ((s.BrushColorSpace == ColorSpaces.RGB || s.BrushColorSpace == ColorSpaces.LAB) && (!s.IsLast && !s.IsFirst)) + { + var converter = new DefaultColorConverter(); + + var previousSpace = s.ColorSpace; + s.SetColorSpaceSilent(_colorSpaces.First(x => x.Space == ColorSpaces.Volume)); + var output = await converter.ConvertAsync(s, false, false); + s.SetColorSpaceSilent(previousSpace); + if (!_printingEnded) { - if (_handler.JobTicket.Segments.Count > 0) - { - JobBrushStop = _handler.JobTicket.Segments[Job.OrderedSegments.IndexOf(segment)].BrushStops.First(); - } + output.ApplyOnBrushStop(s, MachineProvider.MachineOperator.CurrentProcessParameters); } - CurrentBrushStop = RunningJobStatus.CurrentSegment.FirstBrushStop; } - } - }); + } + + _conversion_Busy = false; } /// <summary> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml index 27cf5a53c..2d7d3db15 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobProgressView.xaml @@ -45,21 +45,21 @@ <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}"> <UniformGrid Rows="1" Columns="3" Height="Auto" > <StackPanel Orientation="Vertical" Width="50"> - <Border Width="50" Height="50" Background="Red" CornerRadius="16" HorizontalAlignment="Left"> - <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Red}" VerticalAlignment="Center"></TextBlock> + <Border Width="50" Height="50" Background="#E13C3C" CornerRadius="16" HorizontalAlignment="Left"> + <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Foreground="{StaticResource TangoLightForegroundBrush}" Text="{Binding Red}" VerticalAlignment="Center"></TextBlock> </Border> <TextBlock Margin="0 10 0 0" Text="R" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> </StackPanel> <StackPanel Orientation="Vertical" Margin="4 0 0 0" Width="50"> - <Border Width="50" Height="50" Background="Green" CornerRadius="16" HorizontalAlignment="Left"> - <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" VerticalAlignment="Center"></TextBlock> + <Border Width="50" Height="50" Background="#5CBB5C" CornerRadius="16" HorizontalAlignment="Left"> + <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}"></TextBlock> </Border> <TextBlock Margin="0 10 0 0" Text="G" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> </StackPanel> <StackPanel Orientation="Vertical" Margin="4 0 0 0" Width="50"> - <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="#DC0808F1" CornerRadius="16" HorizontalAlignment="Left"> <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Blue}" VerticalAlignment="Center" Foreground="{StaticResource TangoLightForegroundBrush}"></TextBlock> </Border> <TextBlock Margin="0 10 0 0" Text="B" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> @@ -71,20 +71,20 @@ <DataTemplate x:Key="LAB_Template" DataType="{x:Type entities:BrushStop}"> <UniformGrid Rows="1" Columns="3" Height="Auto" MinWidth="180" HorizontalAlignment="Left"> <StackPanel Orientation="Vertical" Width="50"> - <Border Width="50" Height="50" Background="Gray" CornerRadius="16" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="#CECECE" CornerRadius="16" HorizontalAlignment="Left"> <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding L, StringFormat=0.##}" VerticalAlignment="Center"></TextBlock> </Border> <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> </StackPanel> <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0"> - <Border Width="50" Height="50" Background="red" CornerRadius="16" HorizontalAlignment="Left"> - <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding A, StringFormat=0.##}" VerticalAlignment="Center"></TextBlock> + <Border Width="50" Height="50" Background="#E13C3C" CornerRadius="16" HorizontalAlignment="Left"> + <TextBlock Margin="0 0 0 0" Style="{StaticResource SliderGreyTextStyle}" Foreground="{StaticResource TangoLightForegroundBrush}" Text="{Binding A, StringFormat=0.##}" VerticalAlignment="Center"></TextBlock> </Border> <TextBlock Margin="0 10 0 0 " Text="a" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> </StackPanel> <StackPanel Orientation="Vertical" Margin="10 0 0 0" Width="50"> - <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="#DC0808F1" CornerRadius="16" HorizontalAlignment="Left"> <TextBlock Margin="0 0 0 0" HorizontalAlignment="Center" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding B, StringFormat=0.##}" Foreground="{StaticResource TangoLightForegroundBrush}" VerticalAlignment="Center"></TextBlock> </Border> <TextBlock Margin="0 10 0 0 " Text="b" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> @@ -318,7 +318,7 @@ </TextBlock.Style> </TextBlock> </StackPanel> - <UniformGrid Margin="0 20 0 0" Rows="1" Columns="3" Height="Auto" MinWidth="190" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <UniformGrid Margin="0 20 0 0" Rows="1" Columns="3" Height="Auto" MinWidth="190" HorizontalAlignment="Left" Visibility="{Binding DisplayInputOutput,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel Orientation="Vertical" Width="50"> <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"> <TextBlock Margin="0 0 0 0 " Style="{StaticResource SliderGreyTextStyle}" Text="-" ></TextBlock> @@ -338,7 +338,7 @@ <TextBlock Margin="0 10 0 0 " Text="B" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center"/> </StackPanel> </UniformGrid> - <Grid Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Grid Visibility="{Binding DisplayInputOutput,Converter={StaticResource BooleanToVisibilityConverter}}"> <ContentControl x:Name="leftBrushValues" HorizontalAlignment="Left" Content="{Binding CurrentBrushStop}" Width="Auto" Height="Auto" Margin="0 20 0 0"> <ContentControl.Style> <Style TargetType="ContentControl"> @@ -371,7 +371,7 @@ <Image Source="../Images/JobProgressView/output.png" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Left" Height="Auto" ClipToBounds="True"/> <TextBlock VerticalAlignment="Center" Margin="15 0 0 0" FontSize="{StaticResource TangoDefaultFontSize}" >Output ( % ) </TextBlock> </StackPanel> - <UniformGrid Margin="0 20 0 0" Rows="1" Columns="7" Height="Auto" Width="435" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <UniformGrid Margin="0 20 0 0" Rows="1" Columns="7" Height="Auto" Width="435" HorizontalAlignment="Left" Visibility="{Binding DisplayInputOutput,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> <StackPanel Orientation="Vertical" Width="50"> <Border Width="50" Height="50" Background="Transparent" CornerRadius="16" HorizontalAlignment="Left" BorderBrush="{StaticResource TangoDisabledForegroundBrush}" BorderThickness="1"> <TextBlock Margin="0 0 0 0 " Text="0" FontSize="{StaticResource TangoSmallFontSize}" HorizontalAlignment="Center" VerticalAlignment="Center"/> @@ -416,7 +416,7 @@ </StackPanel> </UniformGrid> - <UniformGrid Columns="7" Rows="1" Margin="0 20 0 0" Width="440" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> + <UniformGrid Columns="7" Rows="1" Margin="0 20 0 0" Width="440" HorizontalAlignment="Left" Visibility="{Binding DisplayInputOutput,Converter={StaticResource BooleanToVisibilityConverter}}"> <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" > <Border Width="50" Height="50" Background="#007FB5" CornerRadius="16" HorizontalAlignment="Left" VerticalAlignment="Center"> <TextBlock Margin="0 0 0 0 " HorizontalAlignment="Center" Text="{Binding CyanOutput}" VerticalAlignment="Center" Foreground="White"></TextBlock> diff --git a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs index 864393461..fa903c02a 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/BrushStopBase.cs @@ -1656,6 +1656,12 @@ namespace Tango.BL.Entities } } + public void SetColorSpaceSilent(ColorSpace space) + { + _colorspace = space; + _colorspaceguid = space.Guid; + } + protected Segment _segment; /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/Job.cs b/Software/Visual_Studio/Tango.BL/Entities/Job.cs index 4e115f5e8..cc1c73fe1 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Job.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Job.cs @@ -855,8 +855,12 @@ namespace Tango.BL.Entities { new BrushStop() { - ColorSpace = new ColorSpace(), + ColorSpace = new ColorSpace() { Name = "Volume" }, Color = System.Windows.Media.Colors.White, + Red = 255, + Green = 255, + Blue = 255, + L = 100, } }, }; |
