| File: System\Windows\Forms\Controls\Buttons\ButtonInternal\RadioButtonFlatAdapter.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Windows.Forms.ButtonInternal; internal class RadioButtonFlatAdapter : RadioButtonBaseAdapter { protected const int FlatCheckSize = 12; internal RadioButtonFlatAdapter(ButtonBase control) : base(control) { } internal override void PaintDown(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonFlatAdapter adapter = new(Control); adapter.PaintDown(e, Control.Checked ? CheckState.Checked : CheckState.Unchecked); return; } ColorData colors = PaintFlatRender(e).Calculate(); if (Control.Enabled) { PaintFlatWorker(e, colors.WindowText, colors.Highlight, colors.WindowFrame, colors); } else { PaintFlatWorker(e, colors.ButtonShadow, colors.ButtonFace, colors.ButtonShadow, colors); } } internal override void PaintOver(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonFlatAdapter adapter = new(Control); adapter.PaintOver(e, Control.Checked ? CheckState.Checked : CheckState.Unchecked); return; } ColorData colors = PaintFlatRender(e).Calculate(); if (Control.Enabled) { PaintFlatWorker(e, colors.WindowText, colors.LowHighlight, colors.WindowFrame, colors); } else { PaintFlatWorker(e, colors.ButtonShadow, colors.ButtonFace, colors.ButtonShadow, colors); } } internal override void PaintUp(PaintEventArgs e, CheckState state) { if (Control.Appearance == Appearance.Button) { ButtonFlatAdapter adapter = new(Control); adapter.PaintUp(e, Control.Checked ? CheckState.Checked : CheckState.Unchecked); return; } ColorData colors = PaintFlatRender(e).Calculate(); if (Control.Enabled) { PaintFlatWorker(e, colors.WindowText, colors.Highlight, colors.WindowFrame, colors); } else { PaintFlatWorker(e, colors.ButtonShadow, colors.ButtonFace, colors.ButtonShadow, colors); } } private void PaintFlatWorker(PaintEventArgs e, Color checkColor, Color checkBackground, Color checkBorder, ColorData colors) { LayoutData layout = Layout(e).Layout(); PaintButtonBackground(e, Control.ClientRectangle, background: null); PaintImage(e, layout); DrawCheckFlat(e, layout, checkColor, colors.Options.HighContrast ? colors.ButtonFace : checkBackground, checkBorder); AdjustFocusRectangle(layout); PaintField(e, layout, colors, checkColor, drawFocus: true); } protected override ButtonBaseAdapter CreateButtonAdapter() => new ButtonFlatAdapter(Control); // RadioButtonPopupLayout also uses this layout for down and over protected override LayoutOptions Layout(PaintEventArgs e) { LayoutOptions layout = CommonLayout(); layout.CheckSize = (int)(FlatCheckSize * GetDpiScaleRatio()); layout.ShadowedText = false; return layout; } }