Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebControls / HyperLinkStyle.cs / 1 / HyperLinkStyle.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.Text; using System.Web.UI; using System.Web.Util; // This class renders selectively attributes from the owner class, filtering out anything not font or forecolor internal sealed class HyperLinkStyle : Style { private bool _doNotRenderDefaults = false; private Style _owner; // This is a style because of the newed IsSet (we need the Style.IsSet, not the new one) public HyperLinkStyle(Style owner) { _owner = owner; } public bool DoNotRenderDefaults { get { return _doNotRenderDefaults; } set { _doNotRenderDefaults = value; } } public sealed override bool IsEmpty { get { return (RegisteredCssClass.Length == 0) && !(_owner.IsSet(PROP_CSSCLASS) || _owner.IsSet(PROP_FORECOLOR) || _owner.IsSet(PROP_FONT_NAMES) || _owner.IsSet(PROP_FONT_SIZE) || _owner.IsSet(PROP_FONT_BOLD) || _owner.IsSet(PROP_FONT_ITALIC) || _owner.IsSet(PROP_FONT_UNDERLINE) || _owner.IsSet(PROP_FONT_OVERLINE) || _owner.IsSet(PROP_FONT_STRIKEOUT)); } } public sealed override void AddAttributesToRender(HtmlTextWriter writer, WebControl owner) { string cssClass = String.Empty; bool renderInlineStyle = true; if (_owner.IsSet(PROP_CSSCLASS)) { cssClass = _owner.CssClass; } if (RegisteredCssClass.Length != 0) { renderInlineStyle = false; if (cssClass.Length != 0) { cssClass = cssClass + " " + RegisteredCssClass; } else { cssClass = RegisteredCssClass; } } if (cssClass.Length > 0) { writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass); } if (renderInlineStyle) { CssStyleCollection styleAttributes = GetStyleAttributes(owner); styleAttributes.Render(writer); } } protected override sealed void FillStyleAttributes(CssStyleCollection attributes, IUrlResolutionService urlResolver) { Debug.Assert(_owner != null); StateBag viewState = ViewState; Color c; // ForeColor if (_owner.IsSet(PROP_FORECOLOR)) { c = _owner.ForeColor; if (!c.IsEmpty) { attributes.Add(HtmlTextWriterStyle.Color, ColorTranslator.ToHtml(c)); } } // Not defaulting to black anymore for not entirely satisfying but reasonable reasons ( // need to call the property get in case we have font properties from view state and have not // created the font object FontInfo font = _owner.Font; // Font.Names string[] names = font.Names; if (names.Length > 0) { attributes.Add(HtmlTextWriterStyle.FontFamily, String.Join(",", names)); } // Font.Size FontUnit fu = font.Size; if (fu.IsEmpty == false) { attributes.Add(HtmlTextWriterStyle.FontSize, fu.ToString(CultureInfo.InvariantCulture)); } // Font.Bold if (_owner.IsSet(PROP_FONT_BOLD)) { if (font.Bold) { attributes.Add(HtmlTextWriterStyle.FontWeight, "bold"); } else { attributes.Add(HtmlTextWriterStyle.FontWeight, "normal"); } } // Font.Italic if (_owner.IsSet(PROP_FONT_ITALIC)) { if (font.Italic == true) { attributes.Add(HtmlTextWriterStyle.FontStyle, "italic"); } else { attributes.Add(HtmlTextWriterStyle.FontStyle, "normal"); } } string textDecoration = String.Empty; if (font.Underline) { textDecoration = "underline"; } if (font.Overline) { textDecoration += " overline"; } if (font.Strikeout) { textDecoration += " line-through"; } if (textDecoration.Length > 0) { attributes.Add(HtmlTextWriterStyle.TextDecoration, textDecoration); } else { if (!DoNotRenderDefaults) { attributes.Add(HtmlTextWriterStyle.TextDecoration, "none"); } } // Removing the border with an inline style if the class name was set if (_owner.IsSet(PROP_CSSCLASS)) { attributes.Add(HtmlTextWriterStyle.BorderStyle, "none"); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.Text; using System.Web.UI; using System.Web.Util; // This class renders selectively attributes from the owner class, filtering out anything not font or forecolor internal sealed class HyperLinkStyle : Style { private bool _doNotRenderDefaults = false; private Style _owner; // This is a style because of the newed IsSet (we need the Style.IsSet, not the new one) public HyperLinkStyle(Style owner) { _owner = owner; } public bool DoNotRenderDefaults { get { return _doNotRenderDefaults; } set { _doNotRenderDefaults = value; } } public sealed override bool IsEmpty { get { return (RegisteredCssClass.Length == 0) && !(_owner.IsSet(PROP_CSSCLASS) || _owner.IsSet(PROP_FORECOLOR) || _owner.IsSet(PROP_FONT_NAMES) || _owner.IsSet(PROP_FONT_SIZE) || _owner.IsSet(PROP_FONT_BOLD) || _owner.IsSet(PROP_FONT_ITALIC) || _owner.IsSet(PROP_FONT_UNDERLINE) || _owner.IsSet(PROP_FONT_OVERLINE) || _owner.IsSet(PROP_FONT_STRIKEOUT)); } } public sealed override void AddAttributesToRender(HtmlTextWriter writer, WebControl owner) { string cssClass = String.Empty; bool renderInlineStyle = true; if (_owner.IsSet(PROP_CSSCLASS)) { cssClass = _owner.CssClass; } if (RegisteredCssClass.Length != 0) { renderInlineStyle = false; if (cssClass.Length != 0) { cssClass = cssClass + " " + RegisteredCssClass; } else { cssClass = RegisteredCssClass; } } if (cssClass.Length > 0) { writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass); } if (renderInlineStyle) { CssStyleCollection styleAttributes = GetStyleAttributes(owner); styleAttributes.Render(writer); } } protected override sealed void FillStyleAttributes(CssStyleCollection attributes, IUrlResolutionService urlResolver) { Debug.Assert(_owner != null); StateBag viewState = ViewState; Color c; // ForeColor if (_owner.IsSet(PROP_FORECOLOR)) { c = _owner.ForeColor; if (!c.IsEmpty) { attributes.Add(HtmlTextWriterStyle.Color, ColorTranslator.ToHtml(c)); } } // Not defaulting to black anymore for not entirely satisfying but reasonable reasons ( // need to call the property get in case we have font properties from view state and have not // created the font object FontInfo font = _owner.Font; // Font.Names string[] names = font.Names; if (names.Length > 0) { attributes.Add(HtmlTextWriterStyle.FontFamily, String.Join(",", names)); } // Font.Size FontUnit fu = font.Size; if (fu.IsEmpty == false) { attributes.Add(HtmlTextWriterStyle.FontSize, fu.ToString(CultureInfo.InvariantCulture)); } // Font.Bold if (_owner.IsSet(PROP_FONT_BOLD)) { if (font.Bold) { attributes.Add(HtmlTextWriterStyle.FontWeight, "bold"); } else { attributes.Add(HtmlTextWriterStyle.FontWeight, "normal"); } } // Font.Italic if (_owner.IsSet(PROP_FONT_ITALIC)) { if (font.Italic == true) { attributes.Add(HtmlTextWriterStyle.FontStyle, "italic"); } else { attributes.Add(HtmlTextWriterStyle.FontStyle, "normal"); } } string textDecoration = String.Empty; if (font.Underline) { textDecoration = "underline"; } if (font.Overline) { textDecoration += " overline"; } if (font.Strikeout) { textDecoration += " line-through"; } if (textDecoration.Length > 0) { attributes.Add(HtmlTextWriterStyle.TextDecoration, textDecoration); } else { if (!DoNotRenderDefaults) { attributes.Add(HtmlTextWriterStyle.TextDecoration, "none"); } } // Removing the border with an inline style if the class name was set if (_owner.IsSet(PROP_CSSCLASS)) { attributes.Add(HtmlTextWriterStyle.BorderStyle, "none"); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DeferredSelectedIndexReference.cs
- CharacterMetricsDictionary.cs
- BypassElementCollection.cs
- UriTemplateLiteralPathSegment.cs
- Constants.cs
- ImageBrush.cs
- HandlerMappingMemo.cs
- TabletCollection.cs
- NodeFunctions.cs
- DynamicEndpoint.cs
- BridgeDataRecord.cs
- ChannelPoolSettings.cs
- CompositeDispatchFormatter.cs
- _SpnDictionary.cs
- InputLanguageManager.cs
- HashCodeCombiner.cs
- TransformPattern.cs
- BooleanFacetDescriptionElement.cs
- DataServiceQueryException.cs
- Mapping.cs
- ObjectTag.cs
- AttributeCollection.cs
- TextBoxAutoCompleteSourceConverter.cs
- MinimizableAttributeTypeConverter.cs
- DeploymentSection.cs
- DefaultSerializationProviderAttribute.cs
- Vars.cs
- Paragraph.cs
- RequestUriProcessor.cs
- SingleSelectRootGridEntry.cs
- BuildTopDownAttribute.cs
- UidManager.cs
- AnnouncementSendsAsyncResult.cs
- SoapUnknownHeader.cs
- ScriptDescriptor.cs
- CompoundFileStreamReference.cs
- RegexParser.cs
- OpenFileDialog.cs
- dataobject.cs
- CompiledIdentityConstraint.cs
- InputManager.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- PopupRoot.cs
- FrameworkTemplate.cs
- _HeaderInfo.cs
- DataServiceCollectionOfT.cs
- SerializableReadOnlyDictionary.cs
- ValidationResult.cs
- SystemSounds.cs
- NumberSubstitution.cs
- BamlWriter.cs
- PreloadedPackages.cs
- StreamAsIStream.cs
- RichTextBox.cs
- OutKeywords.cs
- WizardForm.cs
- DataGridAddNewRow.cs
- WebResourceAttribute.cs
- SelectionPatternIdentifiers.cs
- OdbcConnectionFactory.cs
- PropertyBuilder.cs
- GcSettings.cs
- DuplicateWaitObjectException.cs
- FlowDocumentReader.cs
- DecimalConstantAttribute.cs
- Comparer.cs
- DataGridViewRowEventArgs.cs
- BooleanAnimationUsingKeyFrames.cs
- DbBuffer.cs
- SQLBinaryStorage.cs
- Root.cs
- Calendar.cs
- XmlComment.cs
- RunWorkerCompletedEventArgs.cs
- TableCell.cs
- DesignTimeTemplateParser.cs
- IDReferencePropertyAttribute.cs
- Hashtable.cs
- ConversionValidationRule.cs
- FormatVersion.cs
- ZoomingMessageFilter.cs
- HeaderCollection.cs
- SplitterPanel.cs
- StateDesigner.cs
- WindowsListView.cs
- XmlDataSource.cs
- IPipelineRuntime.cs
- DoubleLink.cs
- SymbolMethod.cs
- DataGridViewRowsRemovedEventArgs.cs
- EventEntry.cs
- MemoryMappedFile.cs
- CharacterMetrics.cs
- ManualResetEvent.cs
- X500Name.cs
- DataDesignUtil.cs
- NullRuntimeConfig.cs
- SdlChannelSink.cs
- ApplicationActivator.cs
- InvokeDelegate.cs