Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- AsyncOperationManager.cs
- AttributeUsageAttribute.cs
- OleDbSchemaGuid.cs
- XmlCodeExporter.cs
- ParagraphResult.cs
- HandlerElement.cs
- SoundPlayer.cs
- SessionSwitchEventArgs.cs
- Thread.cs
- IntSecurity.cs
- HttpListenerException.cs
- FormsAuthenticationModule.cs
- MissingMemberException.cs
- GridViewCommandEventArgs.cs
- panel.cs
- CurrentChangingEventArgs.cs
- SrgsNameValueTag.cs
- PluralizationService.cs
- TableLayoutPanelResizeGlyph.cs
- PropertyInfoSet.cs
- StatusBarDrawItemEvent.cs
- GroupBox.cs
- Label.cs
- TextTreeTextBlock.cs
- NodeFunctions.cs
- NativeMethods.cs
- InternalConfigConfigurationFactory.cs
- TablePatternIdentifiers.cs
- EventHandlersDesigner.cs
- MulticastDelegate.cs
- Wildcard.cs
- Boolean.cs
- ProfileModule.cs
- ExpressionList.cs
- NetNamedPipeSecurityMode.cs
- SqlConnection.cs
- DiscoveryExceptionDictionary.cs
- XamlPoint3DCollectionSerializer.cs
- ImageKeyConverter.cs
- BooleanAnimationUsingKeyFrames.cs
- WebPartCollection.cs
- RadioButton.cs
- sqlpipe.cs
- TemplateControlCodeDomTreeGenerator.cs
- Sequence.cs
- BinHexEncoder.cs
- OperatingSystem.cs
- PrintDocument.cs
- DocumentPageViewAutomationPeer.cs
- WizardStepCollectionEditor.cs
- DocumentViewerBaseAutomationPeer.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- ConnectionConsumerAttribute.cs
- StringWriter.cs
- StyleBamlRecordReader.cs
- SerializationTrace.cs
- PropertyGrid.cs
- SerialErrors.cs
- WebPartMovingEventArgs.cs
- CoreSwitches.cs
- DecimalAverageAggregationOperator.cs
- GlyphCache.cs
- InstanceData.cs
- WebPartHelpVerb.cs
- CompilerInfo.cs
- UrlPath.cs
- SqlOuterApplyReducer.cs
- EntityViewGenerator.cs
- MasterPageCodeDomTreeGenerator.cs
- DataControlFieldCollection.cs
- HostedTransportConfigurationManager.cs
- RpcResponse.cs
- ipaddressinformationcollection.cs
- CodeNamespaceImport.cs
- ConnectionStringSettings.cs
- ExtendedPropertyCollection.cs
- DbConvert.cs
- HttpProfileBase.cs
- BCryptSafeHandles.cs
- GlobalAllocSafeHandle.cs
- ControlCachePolicy.cs
- DescriptionAttribute.cs
- ContentHostHelper.cs
- XPathDocument.cs
- ExcCanonicalXml.cs
- Byte.cs
- __ConsoleStream.cs
- PeerTransportElement.cs
- KnownIds.cs
- ImageKeyConverter.cs
- PathFigure.cs
- ConfigXmlElement.cs
- StartUpEventArgs.cs
- EventMap.cs
- BookmarkResumptionRecord.cs
- PerformanceCounterCategory.cs
- MailHeaderInfo.cs
- sqlstateclientmanager.cs
- ModelTreeEnumerator.cs
- KnownBoxes.cs