Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / MS / Internal / Text / DynamicPropertyReader.cs / 1 / DynamicPropertyReader.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: DynamicPropertyReader.cs // // Description: Helper methods to retrive dynami properties from // DependencyObjects. // // History: // 04/25/2003 : grzegorz - moving from Avalon branch. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Globalization; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Media.TextFormatting; using System.Windows.Markup; using MS.Internal.PtsHost; using MS.Internal.Annotations.Component; namespace MS.Internal.Text { // --------------------------------------------------------------------- // Helper methods to retrive dynami properties from DependencyObjects. // --------------------------------------------------------------------- internal static class DynamicPropertyReader { // ------------------------------------------------------------------ // // Property Groups // // ----------------------------------------------------------------- #region Property Groups // ------------------------------------------------------------------ // Retrieve typeface properties from specified element. // ------------------------------------------------------------------ internal static Typeface GetTypeface(DependencyObject element) { Debug.Assert(element != null); FontFamily fontFamily = (FontFamily) element.GetValue(TextElement.FontFamilyProperty); FontStyle fontStyle = (FontStyle) element.GetValue(TextElement.FontStyleProperty); FontWeight fontWeight = (FontWeight) element.GetValue(TextElement.FontWeightProperty); FontStretch fontStretch = (FontStretch) element.GetValue(TextElement.FontStretchProperty); return new Typeface(fontFamily, fontStyle, fontWeight, fontStretch); } internal static Typeface GetModifiedTypeface(DependencyObject element, FontFamily fontFamily) { Debug.Assert(element != null); FontStyle fontStyle = (FontStyle) element.GetValue(TextElement.FontStyleProperty); FontWeight fontWeight = (FontWeight) element.GetValue(TextElement.FontWeightProperty); FontStretch fontStretch = (FontStretch) element.GetValue(TextElement.FontStretchProperty); return new Typeface(fontFamily, fontStyle, fontWeight, fontStretch); } // ----------------------------------------------------------------- // Retrieve text properties from specified inline object. // // WORKAROUND: see PS task #13486 & #3399. // For inline object go to its parent and retrieve text decoration // properties from there. // ------------------------------------------------------------------ internal static TextDecorationCollection GetTextDecorationsForInlineObject(DependencyObject element, TextDecorationCollection textDecorations) { Debug.Assert(element != null); DependencyObject parent = LogicalTreeHelper.GetParent(element); TextDecorationCollection parentTextDecorations = null; if (parent != null) { // Get parent text decorations if it is non-null parentTextDecorations = GetTextDecorations(parent); } // see if the two text decorations are equal. bool textDecorationsEqual = (textDecorations == null) ? parentTextDecorations == null : textDecorations.ValueEquals(parentTextDecorations); if (!textDecorationsEqual) { if (parentTextDecorations == null) { textDecorations = null; } else { textDecorations = new TextDecorationCollection(); int count = parentTextDecorations.Count; for (int i = 0; i < count; ++i) { textDecorations.Add(parentTextDecorations[i]); } } } return textDecorations; } ////// Helper method to get a TextDecorations property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// internal static TextDecorationCollection GetTextDecorations(DependencyObject element) { return GetCollectionValue(element, Inline.TextDecorationsProperty) as TextDecorationCollection; } ////// Helper method to get a TextEffects property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// internal static TextEffectCollection GetTextEffects(DependencyObject element) { return GetCollectionValue(element, TextElement.TextEffectsProperty) as TextEffectCollection; } ////// Helper method to get a collection property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// ////// Property system's GetValue() call creates a mutable empty collection when the property is accessed for the first time. /// To avoids workingset overhead of those empty collections, we return null instead. /// private static object GetCollectionValue(DependencyObject element, DependencyProperty property) { bool hasModifiers; if (element.GetValueSource(property, null, out hasModifiers) != BaseValueSourceInternal.Default || hasModifiers) { return element.GetValue(property); } return null; } #endregion Property Groups // ----------------------------------------------------------------- // // Block Properties // // ----------------------------------------------------------------- #region Block Properties // ----------------------------------------------------------------- // GetKeepTogether // ------------------------------------------------------------------ internal static bool GetKeepTogether(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.KeepTogether : false; } // ----------------------------------------------------------------- // GetKeepWithNext // ------------------------------------------------------------------ internal static bool GetKeepWithNext(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.KeepWithNext : false; } // ------------------------------------------------------------------ // GetMinWidowLines // ----------------------------------------------------------------- internal static int GetMinWidowLines(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.MinWidowLines : 0; } // ------------------------------------------------------------------ // GetMinOrphanLines // ----------------------------------------------------------------- internal static int GetMinOrphanLines(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.MinOrphanLines : 0; } #endregion Block Properties // ----------------------------------------------------------------- // // Misc Properties // // ----------------------------------------------------------------- #region Misc Properties ////// Gets actual value of LineHeight property. If LineHeight is Double.Nan, returns FontSize*FontFamily.LineSpacing /// internal static double GetLineHeightValue(DependencyObject d) { double lineHeight = (double)d.GetValue(Block.LineHeightProperty); // If LineHeight value is 'Auto', treat it as LineSpacing * FontSize. if (DoubleUtil.IsNaN(lineHeight)) { FontFamily fontFamily = (FontFamily)d.GetValue(TextElement.FontFamilyProperty); double fontSize = (double)d.GetValue(TextElement.FontSizeProperty); lineHeight = fontFamily.LineSpacing * fontSize; } return Math.Max(TextDpi.MinWidth, Math.Min(TextDpi.MaxWidth, lineHeight)); } // ------------------------------------------------------------------ // Retrieve background brush property from specified element. // If 'element' is the same object as paragraph owner, ignore background // brush, because it is handled outside as paragraph's background. // NOTE: This method is only used to read background of text content. // // element - Element associated with content. Passed only for // performance reasons; it can be extracted from 'position'. // paragraphOwner - Owner of paragraph (usually the parent of 'element'). // // ----------------------------------------------------------------- internal static Brush GetBackgroundBrush(DependencyObject element) { Debug.Assert(element != null); Brush backgroundBrush = null; // If 'element' is FrameworkElement, it is the host of the text content. // If 'element' is Block, the content is directly hosted by a block paragraph. // In such cases ignore background brush, because it is handled outside as paragraph's background. while (backgroundBrush == null && CanApplyBackgroundBrush(element)) { backgroundBrush = (Brush)element.GetValue(TextElement.BackgroundProperty); Invariant.Assert(element is FrameworkContentElement); element = ((FrameworkContentElement)element).Parent; } return backgroundBrush; } // ------------------------------------------------------------------ // Retrieve background brush property from specified UIElement. // // position - Exact position of the content. // ------------------------------------------------------------------ internal static Brush GetBackgroundBrushForInlineObject(StaticTextPointer position) { object selected; Brush backgroundBrush; Debug.Assert(!position.IsNull); selected = position.TextContainer.Highlights.GetHighlightValue(position, LogicalDirection.Forward, typeof(TextSelection)); if (selected == DependencyProperty.UnsetValue) { backgroundBrush = (Brush)position.GetValue(TextElement.BackgroundProperty); } else { backgroundBrush = SelectionHighlightInfo.BackgroundBrush; } return backgroundBrush; } // ----------------------------------------------------------------- // GetBaselineAlignment // ------------------------------------------------------------------ internal static BaselineAlignment GetBaselineAlignment(DependencyObject element) { Inline i = element as Inline; BaselineAlignment baselineAlignment = (i != null) ? i.BaselineAlignment : BaselineAlignment.Baseline; // Walk up the tree to check if it inherits BaselineAlignment from a parent while (i != null && BaselineAlignmentIsDefault(i)) { i = i.Parent as Inline; } if (i != null) { // Found an Inline with non-default baseline alignment baselineAlignment = i.BaselineAlignment; } return baselineAlignment; } // ----------------------------------------------------------------- // GetBaselineAlignmentForInlineObject // ----------------------------------------------------------------- internal static BaselineAlignment GetBaselineAlignmentForInlineObject(DependencyObject element) { return GetBaselineAlignment(LogicalTreeHelper.GetParent(element)); } // ----------------------------------------------------------------- // Retrieve CultureInfo property from specified element. // ------------------------------------------------------------------ internal static CultureInfo GetCultureInfo(DependencyObject element) { XmlLanguage language = (XmlLanguage) element.GetValue(FrameworkElement.LanguageProperty); try { return language.GetSpecificCulture(); } catch (InvalidOperationException) { // We default to en-US if no part of the language tag is recognized. return CultureInfo.GetCultureInfoByIetfLanguageTag("en-US"); } } // ----------------------------------------------------------------- // Retrieve Number substitution properties from given element // ------------------------------------------------------------------ internal static NumberSubstitution GetNumberSubstitution(DependencyObject element) { NumberSubstitution numberSubstitution = new NumberSubstitution(); numberSubstitution.CultureSource = (NumberCultureSource)element.GetValue(NumberSubstitution.CultureSourceProperty); numberSubstitution.CultureOverride = (CultureInfo)element.GetValue(NumberSubstitution.CultureOverrideProperty); numberSubstitution.Substitution = (NumberSubstitutionMethod)element.GetValue(NumberSubstitution.SubstitutionProperty); return numberSubstitution; } private static bool CanApplyBackgroundBrush(DependencyObject element) { // If 'element' is FrameworkElement, it is the host of the text content. // If 'element' is Block, the content is directly hosted by a block paragraph. // In such cases ignore background brush, because it is handled outside as paragraph's background. // We will only apply background on Inline elements that are not AnchoredBlocks. // NOTE: We ideally do not need the AnchoredBlock check because when walking up the content tree we should hit a block before // an AnchoredBlock. Leaving it in in case this helper is used for other purposes. if (!(element is Inline) || element is AnchoredBlock) { return false; } return true; } private static bool BaselineAlignmentIsDefault(DependencyObject element) { Invariant.Assert(element != null); bool hasModifiers; if (element.GetValueSource(Inline.BaselineAlignmentProperty, null, out hasModifiers) != BaseValueSourceInternal.Default || hasModifiers) { return false; } return true; } #endregion Misc Properties } } // 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. // // File: DynamicPropertyReader.cs // // Description: Helper methods to retrive dynami properties from // DependencyObjects. // // History: // 04/25/2003 : grzegorz - moving from Avalon branch. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Globalization; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Media.TextFormatting; using System.Windows.Markup; using MS.Internal.PtsHost; using MS.Internal.Annotations.Component; namespace MS.Internal.Text { // --------------------------------------------------------------------- // Helper methods to retrive dynami properties from DependencyObjects. // --------------------------------------------------------------------- internal static class DynamicPropertyReader { // ------------------------------------------------------------------ // // Property Groups // // ----------------------------------------------------------------- #region Property Groups // ------------------------------------------------------------------ // Retrieve typeface properties from specified element. // ------------------------------------------------------------------ internal static Typeface GetTypeface(DependencyObject element) { Debug.Assert(element != null); FontFamily fontFamily = (FontFamily) element.GetValue(TextElement.FontFamilyProperty); FontStyle fontStyle = (FontStyle) element.GetValue(TextElement.FontStyleProperty); FontWeight fontWeight = (FontWeight) element.GetValue(TextElement.FontWeightProperty); FontStretch fontStretch = (FontStretch) element.GetValue(TextElement.FontStretchProperty); return new Typeface(fontFamily, fontStyle, fontWeight, fontStretch); } internal static Typeface GetModifiedTypeface(DependencyObject element, FontFamily fontFamily) { Debug.Assert(element != null); FontStyle fontStyle = (FontStyle) element.GetValue(TextElement.FontStyleProperty); FontWeight fontWeight = (FontWeight) element.GetValue(TextElement.FontWeightProperty); FontStretch fontStretch = (FontStretch) element.GetValue(TextElement.FontStretchProperty); return new Typeface(fontFamily, fontStyle, fontWeight, fontStretch); } // ----------------------------------------------------------------- // Retrieve text properties from specified inline object. // // WORKAROUND: see PS task #13486 & #3399. // For inline object go to its parent and retrieve text decoration // properties from there. // ------------------------------------------------------------------ internal static TextDecorationCollection GetTextDecorationsForInlineObject(DependencyObject element, TextDecorationCollection textDecorations) { Debug.Assert(element != null); DependencyObject parent = LogicalTreeHelper.GetParent(element); TextDecorationCollection parentTextDecorations = null; if (parent != null) { // Get parent text decorations if it is non-null parentTextDecorations = GetTextDecorations(parent); } // see if the two text decorations are equal. bool textDecorationsEqual = (textDecorations == null) ? parentTextDecorations == null : textDecorations.ValueEquals(parentTextDecorations); if (!textDecorationsEqual) { if (parentTextDecorations == null) { textDecorations = null; } else { textDecorations = new TextDecorationCollection(); int count = parentTextDecorations.Count; for (int i = 0; i < count; ++i) { textDecorations.Add(parentTextDecorations[i]); } } } return textDecorations; } ////// Helper method to get a TextDecorations property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// internal static TextDecorationCollection GetTextDecorations(DependencyObject element) { return GetCollectionValue(element, Inline.TextDecorationsProperty) as TextDecorationCollection; } ////// Helper method to get a TextEffects property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// internal static TextEffectCollection GetTextEffects(DependencyObject element) { return GetCollectionValue(element, TextElement.TextEffectsProperty) as TextEffectCollection; } ////// Helper method to get a collection property value. It returns null (instead of empty collection) /// when the property is not set on the given DO. /// ////// Property system's GetValue() call creates a mutable empty collection when the property is accessed for the first time. /// To avoids workingset overhead of those empty collections, we return null instead. /// private static object GetCollectionValue(DependencyObject element, DependencyProperty property) { bool hasModifiers; if (element.GetValueSource(property, null, out hasModifiers) != BaseValueSourceInternal.Default || hasModifiers) { return element.GetValue(property); } return null; } #endregion Property Groups // ----------------------------------------------------------------- // // Block Properties // // ----------------------------------------------------------------- #region Block Properties // ----------------------------------------------------------------- // GetKeepTogether // ------------------------------------------------------------------ internal static bool GetKeepTogether(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.KeepTogether : false; } // ----------------------------------------------------------------- // GetKeepWithNext // ------------------------------------------------------------------ internal static bool GetKeepWithNext(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.KeepWithNext : false; } // ------------------------------------------------------------------ // GetMinWidowLines // ----------------------------------------------------------------- internal static int GetMinWidowLines(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.MinWidowLines : 0; } // ------------------------------------------------------------------ // GetMinOrphanLines // ----------------------------------------------------------------- internal static int GetMinOrphanLines(DependencyObject element) { Paragraph p = element as Paragraph; return (p != null) ? p.MinOrphanLines : 0; } #endregion Block Properties // ----------------------------------------------------------------- // // Misc Properties // // ----------------------------------------------------------------- #region Misc Properties ////// Gets actual value of LineHeight property. If LineHeight is Double.Nan, returns FontSize*FontFamily.LineSpacing /// internal static double GetLineHeightValue(DependencyObject d) { double lineHeight = (double)d.GetValue(Block.LineHeightProperty); // If LineHeight value is 'Auto', treat it as LineSpacing * FontSize. if (DoubleUtil.IsNaN(lineHeight)) { FontFamily fontFamily = (FontFamily)d.GetValue(TextElement.FontFamilyProperty); double fontSize = (double)d.GetValue(TextElement.FontSizeProperty); lineHeight = fontFamily.LineSpacing * fontSize; } return Math.Max(TextDpi.MinWidth, Math.Min(TextDpi.MaxWidth, lineHeight)); } // ------------------------------------------------------------------ // Retrieve background brush property from specified element. // If 'element' is the same object as paragraph owner, ignore background // brush, because it is handled outside as paragraph's background. // NOTE: This method is only used to read background of text content. // // element - Element associated with content. Passed only for // performance reasons; it can be extracted from 'position'. // paragraphOwner - Owner of paragraph (usually the parent of 'element'). // // ----------------------------------------------------------------- internal static Brush GetBackgroundBrush(DependencyObject element) { Debug.Assert(element != null); Brush backgroundBrush = null; // If 'element' is FrameworkElement, it is the host of the text content. // If 'element' is Block, the content is directly hosted by a block paragraph. // In such cases ignore background brush, because it is handled outside as paragraph's background. while (backgroundBrush == null && CanApplyBackgroundBrush(element)) { backgroundBrush = (Brush)element.GetValue(TextElement.BackgroundProperty); Invariant.Assert(element is FrameworkContentElement); element = ((FrameworkContentElement)element).Parent; } return backgroundBrush; } // ------------------------------------------------------------------ // Retrieve background brush property from specified UIElement. // // position - Exact position of the content. // ------------------------------------------------------------------ internal static Brush GetBackgroundBrushForInlineObject(StaticTextPointer position) { object selected; Brush backgroundBrush; Debug.Assert(!position.IsNull); selected = position.TextContainer.Highlights.GetHighlightValue(position, LogicalDirection.Forward, typeof(TextSelection)); if (selected == DependencyProperty.UnsetValue) { backgroundBrush = (Brush)position.GetValue(TextElement.BackgroundProperty); } else { backgroundBrush = SelectionHighlightInfo.BackgroundBrush; } return backgroundBrush; } // ----------------------------------------------------------------- // GetBaselineAlignment // ------------------------------------------------------------------ internal static BaselineAlignment GetBaselineAlignment(DependencyObject element) { Inline i = element as Inline; BaselineAlignment baselineAlignment = (i != null) ? i.BaselineAlignment : BaselineAlignment.Baseline; // Walk up the tree to check if it inherits BaselineAlignment from a parent while (i != null && BaselineAlignmentIsDefault(i)) { i = i.Parent as Inline; } if (i != null) { // Found an Inline with non-default baseline alignment baselineAlignment = i.BaselineAlignment; } return baselineAlignment; } // ----------------------------------------------------------------- // GetBaselineAlignmentForInlineObject // ----------------------------------------------------------------- internal static BaselineAlignment GetBaselineAlignmentForInlineObject(DependencyObject element) { return GetBaselineAlignment(LogicalTreeHelper.GetParent(element)); } // ----------------------------------------------------------------- // Retrieve CultureInfo property from specified element. // ------------------------------------------------------------------ internal static CultureInfo GetCultureInfo(DependencyObject element) { XmlLanguage language = (XmlLanguage) element.GetValue(FrameworkElement.LanguageProperty); try { return language.GetSpecificCulture(); } catch (InvalidOperationException) { // We default to en-US if no part of the language tag is recognized. return CultureInfo.GetCultureInfoByIetfLanguageTag("en-US"); } } // ----------------------------------------------------------------- // Retrieve Number substitution properties from given element // ------------------------------------------------------------------ internal static NumberSubstitution GetNumberSubstitution(DependencyObject element) { NumberSubstitution numberSubstitution = new NumberSubstitution(); numberSubstitution.CultureSource = (NumberCultureSource)element.GetValue(NumberSubstitution.CultureSourceProperty); numberSubstitution.CultureOverride = (CultureInfo)element.GetValue(NumberSubstitution.CultureOverrideProperty); numberSubstitution.Substitution = (NumberSubstitutionMethod)element.GetValue(NumberSubstitution.SubstitutionProperty); return numberSubstitution; } private static bool CanApplyBackgroundBrush(DependencyObject element) { // If 'element' is FrameworkElement, it is the host of the text content. // If 'element' is Block, the content is directly hosted by a block paragraph. // In such cases ignore background brush, because it is handled outside as paragraph's background. // We will only apply background on Inline elements that are not AnchoredBlocks. // NOTE: We ideally do not need the AnchoredBlock check because when walking up the content tree we should hit a block before // an AnchoredBlock. Leaving it in in case this helper is used for other purposes. if (!(element is Inline) || element is AnchoredBlock) { return false; } return true; } private static bool BaselineAlignmentIsDefault(DependencyObject element) { Invariant.Assert(element != null); bool hasModifiers; if (element.GetValueSource(Inline.BaselineAlignmentProperty, null, out hasModifiers) != BaseValueSourceInternal.Default || hasModifiers) { return false; } return true; } #endregion Misc Properties } } // 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
- HttpHandlerActionCollection.cs
- DrawingAttributeSerializer.cs
- Menu.cs
- IFormattable.cs
- ProfileProvider.cs
- TimelineCollection.cs
- RectAnimationUsingKeyFrames.cs
- xmlfixedPageInfo.cs
- StrongNameKeyPair.cs
- CodeTypeMember.cs
- PerformanceCountersElement.cs
- EventlogProvider.cs
- FormViewCommandEventArgs.cs
- ListViewItem.cs
- CompositionTarget.cs
- PrePrepareMethodAttribute.cs
- Int32AnimationBase.cs
- TableLayoutSettings.cs
- CompareValidator.cs
- StorageComplexPropertyMapping.cs
- DebuggerAttributes.cs
- PeerNameRegistration.cs
- TimeStampChecker.cs
- StringReader.cs
- DataGridViewComboBoxColumnDesigner.cs
- Serializer.cs
- HttpRuntimeSection.cs
- MatrixAnimationUsingPath.cs
- DataTableMappingCollection.cs
- Point.cs
- WindowsGrip.cs
- DataGridViewRowCancelEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- XmlReader.cs
- KeySplineConverter.cs
- VersionedStreamOwner.cs
- TextSearch.cs
- StickyNote.cs
- PopOutPanel.cs
- LocationSectionRecord.cs
- PropertyChangingEventArgs.cs
- AccessedThroughPropertyAttribute.cs
- AssemblySettingAttributes.cs
- TypeUtil.cs
- PriorityItem.cs
- Monitor.cs
- DataGridViewCellStyleConverter.cs
- DefaultPropertiesToSend.cs
- ConfigurationStrings.cs
- FormsAuthenticationTicket.cs
- WebPartCancelEventArgs.cs
- ToolStripSettings.cs
- AuthenticatingEventArgs.cs
- SignatureHelper.cs
- CodeGeneratorAttribute.cs
- X509ChainElement.cs
- CopyAttributesAction.cs
- ReachPrintTicketSerializerAsync.cs
- LOSFormatter.cs
- PeerCollaboration.cs
- RequestCachingSection.cs
- TransformedBitmap.cs
- AuthenticationModulesSection.cs
- VisemeEventArgs.cs
- AuthorizationRuleCollection.cs
- AssemblyNameUtility.cs
- DateTimePickerDesigner.cs
- BrowserTree.cs
- Paragraph.cs
- ConnectionOrientedTransportBindingElement.cs
- CryptoApi.cs
- FactoryGenerator.cs
- HTMLTextWriter.cs
- BamlTreeUpdater.cs
- CodeMemberField.cs
- PersonalizationAdministration.cs
- ConnectionStringSettingsCollection.cs
- BezierSegment.cs
- HierarchicalDataSourceDesigner.cs
- ParallelTimeline.cs
- WorkflowInstanceSuspendedRecord.cs
- CacheChildrenQuery.cs
- ApplicationSecurityInfo.cs
- ValidatorCompatibilityHelper.cs
- ResXResourceReader.cs
- ProfileManager.cs
- StringArrayConverter.cs
- ImageCodecInfo.cs
- DataGridPagerStyle.cs
- ReadOnlyCollection.cs
- PictureBox.cs
- DesignTimeParseData.cs
- EmptyEnumerator.cs
- TrackingMemoryStream.cs
- BmpBitmapDecoder.cs
- Classification.cs
- XPathDocumentNavigator.cs
- ToolStripOverflow.cs
- RelationshipEndMember.cs
- InOutArgumentConverter.cs