using System.ComponentModel; namespace System.Windows.Forms { public class TrackBar : Control, ISupportInitialize { private System.Windows.Controls.Slider slider; protected new System.Windows.Controls.ContentControl control { get; } public int Maximum { get => (int)slider.Maximum; set => slider.Maximum = value; } public int Minimum { get => (int)slider.Minimum; set => slider.Minimum = value; } public int Value { get => (int)slider.Value; set => slider.Value = value; } public int TickFrequency { get => (int)slider.TickFrequency; set => slider.TickFrequency = value; } public TickStyle TickStyle { get => (TickStyle)slider.TickPlacement; set => slider.TickPlacement = (Windows.Controls.Primitives.TickPlacement)value; } public Orientation Orientation { get => (Orientation)slider.Orientation; set => slider.Orientation = (Windows.Controls.Orientation)value; } public event EventHandler ValueChanged; protected virtual void OnValueChanged(EventArgs e) => ValueChanged?.Invoke(this, e); public void BeginInit() { } public void EndInit() { } public TrackBar() { slider = new(); slider.HorizontalAlignment = Windows.HorizontalAlignment.Stretch; slider.VerticalAlignment = VerticalAlignment.Stretch; control = new(); control.Content = slider; slider.Margin = new Thickness(8, 0, 8, 0); SetControl(control); TickStyle = TickStyle.BottomRight; slider.ValueChanged += (sender, e) => OnValueChanged(e); slider.PreviewMouseLeftButtonUp += (sender, e) => OnMouseUp(Helper.GetMouseEventArgs(slider, e)); } } }