Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / PropertyGridInternal / DropDownButton.cs / 1 / DropDownButton.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.PropertyGridInternal { using System.Diagnostics; using System; using System.Drawing; using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.VisualStyles; using System.Windows.Forms.ButtonInternal; using Microsoft.Win32; internal sealed class DropDownButton : Button { private bool useComboBoxTheme = false; private bool ignoreMouse; public DropDownButton() { SetStyle(ControlStyles.Selectable, true); this.AccessibleName = SR.GetString(SR.PropertyGridDropDownButtonAccessibleName); } // VSWhidbey 375220 - when the holder is open, we don't fire clicks // public bool IgnoreMouse { get { return ignoreMouse; } set { ignoreMouse = value; } } public bool UseComboBoxTheme { set { if (useComboBoxTheme != value) { useComboBoxTheme = value; Invalidate(); } } } protected override void OnClick(EventArgs e) { if (!IgnoreMouse) { base.OnClick(e); } } protected override void OnMouseUp(MouseEventArgs e) { if (!IgnoreMouse) { base.OnMouseUp(e); } } protected override void OnMouseDown(MouseEventArgs e) { if (!IgnoreMouse) { base.OnMouseDown(e); } } protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); if (Application.RenderWithVisualStyles & useComboBoxTheme) { ComboBoxState cbState = ComboBoxState.Normal; if (base.MouseIsDown) { cbState = ComboBoxState.Pressed; } else if (base.MouseIsOver) { cbState = ComboBoxState.Hot; } ComboBoxRenderer.DrawDropDownButton(pevent.Graphics, new Rectangle(0,0,Width,Height), cbState); } } internal override ButtonBaseAdapter CreateStandardAdapter() { return new DropDownButtonAdapter(this); } } internal class DropDownButtonAdapter : ButtonStandardAdapter { internal DropDownButtonAdapter(ButtonBase control) : base(control) {} private void DDB_Draw3DBorder(System.Drawing.Graphics g, Rectangle r, bool raised) { if (Control.BackColor != SystemColors.Control && SystemInformation.HighContrast) { if (raised) { Color c = ControlPaint.LightLight(Control.BackColor); ControlPaint.DrawBorder(g, r, c, 1, ButtonBorderStyle.Outset, c, 1, ButtonBorderStyle.Outset, c, 2, ButtonBorderStyle.Inset, c, 2, ButtonBorderStyle.Inset); } else { ControlPaint.DrawBorder(g, r, ControlPaint.Dark(Control.BackColor), ButtonBorderStyle.Solid); } } else { if (raised) { Color c = ControlPaint.Light(Control.BackColor); ControlPaint.DrawBorder(g, r, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.Solid, Control.BackColor, 2, ButtonBorderStyle.Outset, Control.BackColor, 2, ButtonBorderStyle.Outset); Rectangle inside = r; inside.Offset(1,1); inside.Width -= 3; inside.Height -= 3; c = ControlPaint.LightLight(Control.BackColor); ControlPaint.DrawBorder(g, inside, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.None); } else { ControlPaint.DrawBorder(g, r, ControlPaint.Dark(Control.BackColor), ButtonBorderStyle.Solid); } } } internal override void PaintUp(PaintEventArgs pevent, CheckState state) { base.PaintUp(pevent, state); if (!Application.RenderWithVisualStyles) { DDB_Draw3DBorder(pevent.Graphics, Control.ClientRectangle, true); } else { Color c = SystemColors.Window; Rectangle rect = Control.ClientRectangle; rect.Inflate(0, -1); ControlPaint.DrawBorder(pevent.Graphics, rect, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.None); } } internal override void DrawImageCore(Graphics graphics, Image image, Rectangle imageBounds, Point imageStart, ButtonBaseAdapter.LayoutData layout) { ControlPaint.DrawImageReplaceColor(graphics, image, imageBounds, Color.Black, Control.ForeColor); //ControlPaint.DrawImageColorized(graphics, image, imageBounds , Control.ForeColor); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.PropertyGridInternal { using System.Diagnostics; using System; using System.Drawing; using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.VisualStyles; using System.Windows.Forms.ButtonInternal; using Microsoft.Win32; internal sealed class DropDownButton : Button { private bool useComboBoxTheme = false; private bool ignoreMouse; public DropDownButton() { SetStyle(ControlStyles.Selectable, true); this.AccessibleName = SR.GetString(SR.PropertyGridDropDownButtonAccessibleName); } // VSWhidbey 375220 - when the holder is open, we don't fire clicks // public bool IgnoreMouse { get { return ignoreMouse; } set { ignoreMouse = value; } } public bool UseComboBoxTheme { set { if (useComboBoxTheme != value) { useComboBoxTheme = value; Invalidate(); } } } protected override void OnClick(EventArgs e) { if (!IgnoreMouse) { base.OnClick(e); } } protected override void OnMouseUp(MouseEventArgs e) { if (!IgnoreMouse) { base.OnMouseUp(e); } } protected override void OnMouseDown(MouseEventArgs e) { if (!IgnoreMouse) { base.OnMouseDown(e); } } protected override void OnPaint(PaintEventArgs pevent) { base.OnPaint(pevent); if (Application.RenderWithVisualStyles & useComboBoxTheme) { ComboBoxState cbState = ComboBoxState.Normal; if (base.MouseIsDown) { cbState = ComboBoxState.Pressed; } else if (base.MouseIsOver) { cbState = ComboBoxState.Hot; } ComboBoxRenderer.DrawDropDownButton(pevent.Graphics, new Rectangle(0,0,Width,Height), cbState); } } internal override ButtonBaseAdapter CreateStandardAdapter() { return new DropDownButtonAdapter(this); } } internal class DropDownButtonAdapter : ButtonStandardAdapter { internal DropDownButtonAdapter(ButtonBase control) : base(control) {} private void DDB_Draw3DBorder(System.Drawing.Graphics g, Rectangle r, bool raised) { if (Control.BackColor != SystemColors.Control && SystemInformation.HighContrast) { if (raised) { Color c = ControlPaint.LightLight(Control.BackColor); ControlPaint.DrawBorder(g, r, c, 1, ButtonBorderStyle.Outset, c, 1, ButtonBorderStyle.Outset, c, 2, ButtonBorderStyle.Inset, c, 2, ButtonBorderStyle.Inset); } else { ControlPaint.DrawBorder(g, r, ControlPaint.Dark(Control.BackColor), ButtonBorderStyle.Solid); } } else { if (raised) { Color c = ControlPaint.Light(Control.BackColor); ControlPaint.DrawBorder(g, r, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.Solid, Control.BackColor, 2, ButtonBorderStyle.Outset, Control.BackColor, 2, ButtonBorderStyle.Outset); Rectangle inside = r; inside.Offset(1,1); inside.Width -= 3; inside.Height -= 3; c = ControlPaint.LightLight(Control.BackColor); ControlPaint.DrawBorder(g, inside, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.None); } else { ControlPaint.DrawBorder(g, r, ControlPaint.Dark(Control.BackColor), ButtonBorderStyle.Solid); } } } internal override void PaintUp(PaintEventArgs pevent, CheckState state) { base.PaintUp(pevent, state); if (!Application.RenderWithVisualStyles) { DDB_Draw3DBorder(pevent.Graphics, Control.ClientRectangle, true); } else { Color c = SystemColors.Window; Rectangle rect = Control.ClientRectangle; rect.Inflate(0, -1); ControlPaint.DrawBorder(pevent.Graphics, rect, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.None, c, 1, ButtonBorderStyle.Solid, c, 1, ButtonBorderStyle.None); } } internal override void DrawImageCore(Graphics graphics, Image image, Rectangle imageBounds, Point imageStart, ButtonBaseAdapter.LayoutData layout) { ControlPaint.DrawImageReplaceColor(graphics, image, imageBounds, Color.Black, Control.ForeColor); //ControlPaint.DrawImageColorized(graphics, image, imageBounds , Control.ForeColor); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- X509CertificateCollection.cs
- Object.cs
- XmlUtil.cs
- PersonalizablePropertyEntry.cs
- _CacheStreams.cs
- DesignerActionVerbList.cs
- CodeAttributeDeclarationCollection.cs
- FixUp.cs
- MultiBindingExpression.cs
- Point3DAnimationUsingKeyFrames.cs
- WebHostedComPlusServiceHost.cs
- VectorAnimationBase.cs
- DataFormats.cs
- TypeConstant.cs
- PerformanceCounterCategory.cs
- GlobalEventManager.cs
- DataViewListener.cs
- SplashScreenNativeMethods.cs
- Rule.cs
- RenameRuleObjectDialog.Designer.cs
- IncrementalReadDecoders.cs
- XmlSchemaRedefine.cs
- EventProviderBase.cs
- ObjectListSelectEventArgs.cs
- IOThreadScheduler.cs
- CancelEventArgs.cs
- PopupRoot.cs
- XmlSchema.cs
- ObjectCacheSettings.cs
- XmlTextReader.cs
- TargetFrameworkAttribute.cs
- BamlTreeUpdater.cs
- basenumberconverter.cs
- SchemaImporterExtensionElementCollection.cs
- SystemEvents.cs
- PackageRelationship.cs
- DataMemberConverter.cs
- FormViewInsertedEventArgs.cs
- ByteStorage.cs
- InkSerializer.cs
- SQLByte.cs
- WindowInteropHelper.cs
- PhoneCallDesigner.cs
- SQLDoubleStorage.cs
- EditorResources.cs
- ViewDesigner.cs
- CurrencyManager.cs
- MediaContext.cs
- ObfuscateAssemblyAttribute.cs
- ConfigurationSection.cs
- Int32KeyFrameCollection.cs
- CqlParserHelpers.cs
- SchemaElement.cs
- DateTimeConverter2.cs
- UserControlDesigner.cs
- BrowserCapabilitiesFactoryBase.cs
- ClientTarget.cs
- DeviceContext.cs
- SqlDataSourceCustomCommandEditor.cs
- GenerateTemporaryAssemblyTask.cs
- DictionarySurrogate.cs
- ExternalException.cs
- AxHostDesigner.cs
- filewebresponse.cs
- StylusCollection.cs
- DrawingContextWalker.cs
- DataViewSetting.cs
- EmptyEnumerator.cs
- rsa.cs
- BitmapEffectInput.cs
- DefaultBinder.cs
- DirectionalLight.cs
- StructuredTypeInfo.cs
- ServicePoint.cs
- MetadataItemEmitter.cs
- BackEase.cs
- ParseNumbers.cs
- HtmlSelect.cs
- DesignerVerb.cs
- LoginCancelEventArgs.cs
- CodeArrayCreateExpression.cs
- BatchServiceHost.cs
- SByteConverter.cs
- HttpResponseBase.cs
- SystemColors.cs
- SelectionItemPattern.cs
- TemplateControl.cs
- SoapServerProtocol.cs
- BinaryObjectInfo.cs
- HierarchicalDataSourceConverter.cs
- RNGCryptoServiceProvider.cs
- CodeSnippetTypeMember.cs
- DetailsViewPagerRow.cs
- RepeatButton.cs
- ContextMarshalException.cs
- Rotation3DAnimation.cs
- SqlBulkCopy.cs
- CodeTypeReferenceCollection.cs
- FileChangesMonitor.cs
- KoreanCalendar.cs