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); } }
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); }