1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- namespace System.Windows.Forms
- {
- public class ScrollBar : Control
- {
- protected new System.Windows.Controls.Primitives.ScrollBar control { get; }
- public int LargeChange
- {
- get => (int)control.LargeChange;
- set
- {
- control.LargeChange = value;
- control.ViewportSize = value;
- UpdateMaximum();
- }
- }
- private int maximum;
- public int Maximum
- {
- get => maximum;
- set
- {
- maximum = value;
- UpdateMaximum();
- }
- }
- public int Minimum
- {
- get => (int)control.Minimum;
- set => control.Minimum = value;
- }
- public int SmallChange
- {
- get => (int)control.SmallChange;
- set => control.SmallChange = value;
- }
- public int Value
- {
- get => (int)control.Value;
- set => control.Value = value;
- }
- public event ScrollEventHandler Scroll;
- public event EventHandler ValueChanged;
- private void UpdateMaximum()
- {
- control.Maximum = maximum - control.ViewportSize;
- }
- protected virtual void OnScroll(ScrollEventArgs e) => Scroll?.Invoke(this, e);
-
- protected virtual void OnValueChanged(EventArgs e) => ValueChanged?.Invoke(this, e);
- public ScrollBar()
- {
- control = new();
- SetControl(control);
- control.Scroll += (s, e) => OnScroll(Helper.GetScrollEventArgs(e, control.Orientation == Windows.Controls.Orientation.Horizontal));
- control.ValueChanged += (s, e) => OnValueChanged(e);
- }
- }
- }
|