Пример #1
0
 public void RenderPreset(IRenderPanel target, Preset preset)
 {
     target.ClearItems();
     foreach (var controller in preset.Controllers)
     {
         FrameworkElement?rendered = null;
         rendered = controller switch
         {
             Presets.Controls.Slider bitrateSlider => RenderBitrateSlider(bitrateSlider),
             VideoScale videoScale => RenderVideoScale(videoScale),
             VideoTime videoTime => RenderVideoTime(videoTime),
             ValueSelector valueSelector => RenderValueSelector(valueSelector),
             _ => throw new InvalidOperationException(),
         };
         target.Render(RenderLabel(controller.Label));
         target.Render(rendered);
     }
 }
Пример #2
0
        private Control RenderBitrateSlider(Presets.Controls.Slider bitrateSlider)
        {
            var slider = new SliderWithValueText
            {
                Minimum   = bitrateSlider.Minimum,
                Maximum   = bitrateSlider.Maximum,
                Value     = bitrateSlider.Value,
                Name      = bitrateSlider.Name,
                Margin    = ControlMargin,
                ValueUnit = bitrateSlider.Unit,
            };

            if (bitrateSlider.PresetValues?.Length > 0)
            {
                slider.IsSnapToTickEnabled = true;
                slider.Ticks = new DoubleCollection(bitrateSlider.PresetValues.Select(x => (double)x));
            }

            return(slider);
        }