Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Documents / Run.cs / 1 / Run.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// Description: Run class - Text node in Flow content (text run)
//
//---------------------------------------------------------------------------
using MS.Internal; // Invariant.Assert
using System.Windows.Markup; // ContentProperty
namespace System.Windows.Documents
{
///
/// A terminal element in text flow hierarchy - contains a uniformatted run of unicode characters
///
[ContentProperty("Text")]
public class Run : Inline
{
//-------------------------------------------------------------------
//
// Constructors
//
//-------------------------------------------------------------------
#region Constructors
///
/// Initializes an instance of Run class.
///
public Run()
{
}
///
/// Initializes an instance of Run class specifying its text content.
///
///
/// Text content assigned to the Run.
///
public Run(string text) : this(text, null)
{
}
///
/// Creates a new Run instance.
///
///
/// Optional text content. May be null.
///
///
/// Optional position at which to insert the new Run. May
/// be null.
///
public Run(string text, TextPointer insertionPosition)
{
if (insertionPosition != null)
{
insertionPosition.TextContainer.BeginChange();
}
try
{
if (insertionPosition != null)
{
// This will throw InvalidOperationException if schema validity is violated.
insertionPosition.InsertInline(this);
}
if (text != null)
{
// Do not use Text property as it has perf impact on parser.
this.ContentStart.InsertTextInRun(text);
}
}
finally
{
if (insertionPosition != null)
{
insertionPosition.TextContainer.EndChange();
}
}
}
#endregion Constructors
//--------------------------------------------------------------------
//
// Public Properties
//
//-------------------------------------------------------------------
#region Public Properties
///
/// The content spanned by this TextElement.
///
public string Text
{
get
{
return TextRangeBase.GetTextInternal(this.ContentStart, this.ContentEnd);
}
set
{
if (value == null)
{
value = String.Empty;
}
TextContainer textContainer = this.TextContainer;
textContainer.BeginChange();
try
{
TextPointer contentStart = this.ContentStart;
if (!this.IsEmpty)
{
textContainer.DeleteContentInternal(contentStart, this.ContentEnd);
}
contentStart.InsertTextInRun(value);
}
finally
{
textContainer.EndChange();
}
}
}
#endregion Public Properties
//--------------------------------------------------------------------
//
// Internal Methods
//
//--------------------------------------------------------------------
#region Internal Methods
//
// This property
// 1. Finds the correct initial size for the _effectiveValues store on the current DependencyObject
// 2. This is a performance optimization
//
internal override int EffectiveValuesInitialSize
{
get { return 13; }
}
///
/// This method is used by TypeDescriptor to determine if this property should
/// be serialized.
///
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public bool ShouldSerializeText(XamlDesignerSerializationManager manager)
{
return manager != null && manager.XmlWriter == null;
}
#endregion Internal Methods
}
}
// 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.
//
// Description: Run class - Text node in Flow content (text run)
//
//---------------------------------------------------------------------------
using MS.Internal; // Invariant.Assert
using System.Windows.Markup; // ContentProperty
namespace System.Windows.Documents
{
///
/// A terminal element in text flow hierarchy - contains a uniformatted run of unicode characters
///
[ContentProperty("Text")]
public class Run : Inline
{
//-------------------------------------------------------------------
//
// Constructors
//
//-------------------------------------------------------------------
#region Constructors
///
/// Initializes an instance of Run class.
///
public Run()
{
}
///
/// Initializes an instance of Run class specifying its text content.
///
///
/// Text content assigned to the Run.
///
public Run(string text) : this(text, null)
{
}
///
/// Creates a new Run instance.
///
///
/// Optional text content. May be null.
///
///
/// Optional position at which to insert the new Run. May
/// be null.
///
public Run(string text, TextPointer insertionPosition)
{
if (insertionPosition != null)
{
insertionPosition.TextContainer.BeginChange();
}
try
{
if (insertionPosition != null)
{
// This will throw InvalidOperationException if schema validity is violated.
insertionPosition.InsertInline(this);
}
if (text != null)
{
// Do not use Text property as it has perf impact on parser.
this.ContentStart.InsertTextInRun(text);
}
}
finally
{
if (insertionPosition != null)
{
insertionPosition.TextContainer.EndChange();
}
}
}
#endregion Constructors
//--------------------------------------------------------------------
//
// Public Properties
//
//-------------------------------------------------------------------
#region Public Properties
///
/// The content spanned by this TextElement.
///
public string Text
{
get
{
return TextRangeBase.GetTextInternal(this.ContentStart, this.ContentEnd);
}
set
{
if (value == null)
{
value = String.Empty;
}
TextContainer textContainer = this.TextContainer;
textContainer.BeginChange();
try
{
TextPointer contentStart = this.ContentStart;
if (!this.IsEmpty)
{
textContainer.DeleteContentInternal(contentStart, this.ContentEnd);
}
contentStart.InsertTextInRun(value);
}
finally
{
textContainer.EndChange();
}
}
}
#endregion Public Properties
//--------------------------------------------------------------------
//
// Internal Methods
//
//--------------------------------------------------------------------
#region Internal Methods
//
// This property
// 1. Finds the correct initial size for the _effectiveValues store on the current DependencyObject
// 2. This is a performance optimization
//
internal override int EffectiveValuesInitialSize
{
get { return 13; }
}
///
/// This method is used by TypeDescriptor to determine if this property should
/// be serialized.
///
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public bool ShouldSerializeText(XamlDesignerSerializationManager manager)
{
return manager != null && manager.XmlWriter == null;
}
#endregion Internal Methods
}
}
// 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
- FormViewCommandEventArgs.cs
- BehaviorEditorPart.cs
- ZipIOExtraFieldPaddingElement.cs
- XmlSigningNodeWriter.cs
- ExpressionBuilderCollection.cs
- FixUpCollection.cs
- ChtmlTextWriter.cs
- GroupDescription.cs
- EndpointDispatcher.cs
- cryptoapiTransform.cs
- HTTPRemotingHandler.cs
- RuntimeHandles.cs
- UseLicense.cs
- StylusPointPropertyId.cs
- InfoCardBaseException.cs
- LoginViewDesigner.cs
- DbDataRecord.cs
- ComboBox.cs
- DrawListViewItemEventArgs.cs
- ValueSerializer.cs
- TcpAppDomainProtocolHandler.cs
- AbsoluteQuery.cs
- ObjectListCommandsPage.cs
- DynamicRouteExpression.cs
- SQLInt32.cs
- Serializer.cs
- EntityDescriptor.cs
- FloaterParaClient.cs
- ProviderManager.cs
- AnnotationResourceChangedEventArgs.cs
- SqlXmlStorage.cs
- HtmlElementErrorEventArgs.cs
- Pens.cs
- CustomValidator.cs
- IndicShape.cs
- ActivityTypeDesigner.xaml.cs
- StructuredTypeEmitter.cs
- FixedSOMElement.cs
- CurrentChangedEventManager.cs
- DesignerDeviceConfig.cs
- PartialTrustVisibleAssemblyCollection.cs
- ComplexPropertyEntry.cs
- TerminatorSinks.cs
- XmlArrayItemAttribute.cs
- LinqDataSourceDisposeEventArgs.cs
- TextTreeDeleteContentUndoUnit.cs
- FormViewDeletedEventArgs.cs
- FileVersionInfo.cs
- XmlSchemaSequence.cs
- UpdateTranslator.cs
- BooleanKeyFrameCollection.cs
- TextFormatterContext.cs
- Polygon.cs
- BrowserCapabilitiesFactoryBase.cs
- uribuilder.cs
- FastEncoderWindow.cs
- FixedTextContainer.cs
- StorageAssociationTypeMapping.cs
- DocumentReferenceCollection.cs
- ParseHttpDate.cs
- WebServiceHostFactory.cs
- Tile.cs
- GroupLabel.cs
- ExponentialEase.cs
- CollectionViewGroup.cs
- CompoundFileStorageReference.cs
- XsltArgumentList.cs
- ConvertersCollection.cs
- PasswordPropertyTextAttribute.cs
- CheckBoxFlatAdapter.cs
- UIElementAutomationPeer.cs
- Durable.cs
- Interfaces.cs
- WindowCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- BindToObject.cs
- PersonalizationStateQuery.cs
- AttachedAnnotation.cs
- HttpValueCollection.cs
- StreamAsIStream.cs
- PhoneCallDesigner.cs
- UnsafeNativeMethods.cs
- EdmProperty.cs
- BitmapInitialize.cs
- bindurihelper.cs
- SqlClientMetaDataCollectionNames.cs
- DefaultParameterValueAttribute.cs
- DBParameter.cs
- ScrollItemProviderWrapper.cs
- FontNamesConverter.cs
- TableCellAutomationPeer.cs
- XamlTemplateSerializer.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- OptimizedTemplateContentHelper.cs
- PropertyOverridesTypeEditor.cs
- MenuEventArgs.cs
- ObjectItemCollection.cs
- SamlSerializer.cs
- XmlSchemaImporter.cs
- QilInvoke.cs