Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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 (VSWhidbey 356729) // 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"); } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- compensatingcollection.cs
- ProcessHostServerConfig.cs
- XmlSerializationGeneratedCode.cs
- IgnoreFileBuildProvider.cs
- RenderOptions.cs
- StringKeyFrameCollection.cs
- SoapSchemaExporter.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ProbeMatchesMessage11.cs
- SimpleRecyclingCache.cs
- Positioning.cs
- HostingPreferredMapPath.cs
- CellIdBoolean.cs
- ComponentResourceManager.cs
- LayoutEditorPart.cs
- DataRelationPropertyDescriptor.cs
- MetadataSource.cs
- _DigestClient.cs
- ToReply.cs
- ZoneLinkButton.cs
- StringComparer.cs
- CqlErrorHelper.cs
- Validator.cs
- CompilerInfo.cs
- PropertyCollection.cs
- ContainerVisual.cs
- SynchronizationLockException.cs
- ExpressionHelper.cs
- XmlTextReader.cs
- XmlDataDocument.cs
- ListMarkerLine.cs
- TailPinnedEventArgs.cs
- DbParameterHelper.cs
- BitmapEffectDrawing.cs
- IChannel.cs
- CodePageUtils.cs
- AutomationProperty.cs
- HtmlLink.cs
- MexHttpsBindingCollectionElement.cs
- TriggerAction.cs
- RegexReplacement.cs
- UInt64Storage.cs
- ElementsClipboardData.cs
- LoadedOrUnloadedOperation.cs
- TdsParserHelperClasses.cs
- GroupStyle.cs
- TextEndOfParagraph.cs
- SmtpFailedRecipientException.cs
- Vector3DCollection.cs
- MonitorWrapper.cs
- SpAudioStreamWrapper.cs
- AddingNewEventArgs.cs
- LinkedResourceCollection.cs
- EventArgs.cs
- translator.cs
- System.Data.OracleClient_BID.cs
- ReflectPropertyDescriptor.cs
- PropertyGridEditorPart.cs
- WebPartsSection.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- NativeMethods.cs
- BufferBuilder.cs
- OptimizedTemplateContent.cs
- HtmlElement.cs
- WrappedIUnknown.cs
- ScriptIgnoreAttribute.cs
- StylusCollection.cs
- Screen.cs
- AspNetCompatibilityRequirementsAttribute.cs
- EditorZoneBase.cs
- WebCategoryAttribute.cs
- MSG.cs
- DataKey.cs
- StaticFileHandler.cs
- ExpressionNormalizer.cs
- DynamicDocumentPaginator.cs
- RecordBuilder.cs
- XmlEntity.cs
- xml.cs
- Padding.cs
- HorizontalAlignConverter.cs
- CheckBoxFlatAdapter.cs
- MailHeaderInfo.cs
- SafeFindHandle.cs
- filewebresponse.cs
- StringInfo.cs
- MulticastIPAddressInformationCollection.cs
- PerCallInstanceContextProvider.cs
- Int64AnimationBase.cs
- SqlParameterizer.cs
- XmlArrayItemAttributes.cs
- GenericXmlSecurityToken.cs
- TypeElement.cs
- PeerDuplexChannel.cs
- MembershipSection.cs
- TrackBar.cs
- AtomMaterializerLog.cs
- ResourceManager.cs
- SHA256.cs
- SqlUnionizer.cs