Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Documents / InlineUIContainer.cs / 1 / InlineUIContainer.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: InlineUIContainer - a wrapper for embedded UIElements in text // flow content inline collections // //--------------------------------------------------------------------------- using System.ComponentModel; // DesignerSerializationVisibility using System.Windows.Markup; // XamlDesignerSerializationManager using MS.Internal; using MS.Internal.Documents; namespace System.Windows.Documents { ////// InlineUIContainer - a wrapper for embedded UIElements in text /// flow content inline collections /// [ContentProperty("Child")] [TextElementEditingBehaviorAttribute(IsMergeable = false)] public class InlineUIContainer : Inline { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors ////// Initializes a new instance of InlineUIContainer element. /// ////// The purpose of this element is to be a wrapper for UIElements /// when they are embedded into text flow - as items of /// InlineCollections. /// public InlineUIContainer() { } ////// Initializes an InlineBox specifying its child UIElement /// /// /// UIElement set as a child of this inline item /// public InlineUIContainer(UIElement childUIElement) : this(childUIElement, null) { } ////// Creates a new InlineUIContainer instance. /// /// /// Optional child of the new InlineUIContainer, may be null. /// /// /// Optional position at which to insert the new InlineUIContainer. May /// be null. /// public InlineUIContainer(UIElement childUIElement, TextPointer insertionPosition) { if (insertionPosition != null) { insertionPosition.TextContainer.BeginChange(); } try { if (insertionPosition != null) { // This will throw InvalidOperationException if schema validity is violated. insertionPosition.InsertInline(this); } this.Child = childUIElement; } finally { if (insertionPosition != null) { insertionPosition.TextContainer.EndChange(); } } } #endregion Constructors //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- #region Public Properties ////// The content spanned by this TextElement. /// public UIElement Child { get { return this.ContentStart.GetAdjacentElement(LogicalDirection.Forward) as UIElement; } set { TextContainer textContainer = this.TextContainer; textContainer.BeginChange(); try { TextPointer contentStart = this.ContentStart; UIElement child = Child; if (child != null) { textContainer.DeleteContentInternal(contentStart, this.ContentEnd); ContainerTextElementField.ClearValue(child); } if (value != null) { ContainerTextElementField.SetValue(value, this); contentStart.InsertUIElement(value); } } finally { textContainer.EndChange(); } } } #endregion Public Properties #region Internal Properties ////// UIElementIsland representing embedded Element Layout island within content world. /// internal UIElementIsland UIElementIsland { get { UpdateUIElementIsland(); return _uiElementIsland; } } #endregion Internal Properties #region Private Methods ////// Ensures the _uiElementIsland variable is up to date /// private void UpdateUIElementIsland() { UIElement childElement = this.Child; if(_uiElementIsland == null || _uiElementIsland.Root != childElement) { if(_uiElementIsland != null) { _uiElementIsland.Dispose(); _uiElementIsland = null; } if(childElement != null) { _uiElementIsland = new UIElementIsland(childElement); } } } #endregion Private Methods #region Private Data private UIElementIsland _uiElementIsland; #endregion Private Data } } // 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: InlineUIContainer - a wrapper for embedded UIElements in text // flow content inline collections // //--------------------------------------------------------------------------- using System.ComponentModel; // DesignerSerializationVisibility using System.Windows.Markup; // XamlDesignerSerializationManager using MS.Internal; using MS.Internal.Documents; namespace System.Windows.Documents { ////// InlineUIContainer - a wrapper for embedded UIElements in text /// flow content inline collections /// [ContentProperty("Child")] [TextElementEditingBehaviorAttribute(IsMergeable = false)] public class InlineUIContainer : Inline { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors ////// Initializes a new instance of InlineUIContainer element. /// ////// The purpose of this element is to be a wrapper for UIElements /// when they are embedded into text flow - as items of /// InlineCollections. /// public InlineUIContainer() { } ////// Initializes an InlineBox specifying its child UIElement /// /// /// UIElement set as a child of this inline item /// public InlineUIContainer(UIElement childUIElement) : this(childUIElement, null) { } ////// Creates a new InlineUIContainer instance. /// /// /// Optional child of the new InlineUIContainer, may be null. /// /// /// Optional position at which to insert the new InlineUIContainer. May /// be null. /// public InlineUIContainer(UIElement childUIElement, TextPointer insertionPosition) { if (insertionPosition != null) { insertionPosition.TextContainer.BeginChange(); } try { if (insertionPosition != null) { // This will throw InvalidOperationException if schema validity is violated. insertionPosition.InsertInline(this); } this.Child = childUIElement; } finally { if (insertionPosition != null) { insertionPosition.TextContainer.EndChange(); } } } #endregion Constructors //-------------------------------------------------------------------- // // Public Properties // //------------------------------------------------------------------- #region Public Properties ////// The content spanned by this TextElement. /// public UIElement Child { get { return this.ContentStart.GetAdjacentElement(LogicalDirection.Forward) as UIElement; } set { TextContainer textContainer = this.TextContainer; textContainer.BeginChange(); try { TextPointer contentStart = this.ContentStart; UIElement child = Child; if (child != null) { textContainer.DeleteContentInternal(contentStart, this.ContentEnd); ContainerTextElementField.ClearValue(child); } if (value != null) { ContainerTextElementField.SetValue(value, this); contentStart.InsertUIElement(value); } } finally { textContainer.EndChange(); } } } #endregion Public Properties #region Internal Properties ////// UIElementIsland representing embedded Element Layout island within content world. /// internal UIElementIsland UIElementIsland { get { UpdateUIElementIsland(); return _uiElementIsland; } } #endregion Internal Properties #region Private Methods ////// Ensures the _uiElementIsland variable is up to date /// private void UpdateUIElementIsland() { UIElement childElement = this.Child; if(_uiElementIsland == null || _uiElementIsland.Root != childElement) { if(_uiElementIsland != null) { _uiElementIsland.Dispose(); _uiElementIsland = null; } if(childElement != null) { _uiElementIsland = new UIElementIsland(childElement); } } } #endregion Private Methods #region Private Data private UIElementIsland _uiElementIsland; #endregion Private Data } } // 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
- FrameworkContentElement.cs
- List.cs
- SerializationHelper.cs
- HtmlShimManager.cs
- querybuilder.cs
- SqlProviderServices.cs
- PerformanceCounterManager.cs
- CachedPathData.cs
- BindStream.cs
- EntitySqlQueryCacheKey.cs
- MenuItem.cs
- Visitors.cs
- DocumentScope.cs
- TextServicesPropertyRanges.cs
- CheckBoxAutomationPeer.cs
- Event.cs
- XmlHierarchyData.cs
- SBCSCodePageEncoding.cs
- XmlMemberMapping.cs
- _LoggingObject.cs
- ExpressionPrefixAttribute.cs
- DataControlField.cs
- DependencyObjectValidator.cs
- DataSetUtil.cs
- XmlQualifiedName.cs
- _ListenerRequestStream.cs
- UpdateException.cs
- KnownAssembliesSet.cs
- CachedTypeface.cs
- Label.cs
- ObjectContext.cs
- XmlSchema.cs
- ColumnBinding.cs
- PageAdapter.cs
- DiscoveryDocument.cs
- BitmapEffectState.cs
- Point3DKeyFrameCollection.cs
- DataObjectPastingEventArgs.cs
- Helpers.cs
- Decimal.cs
- SqlHelper.cs
- CurrentChangedEventManager.cs
- ZipFileInfoCollection.cs
- RIPEMD160.cs
- SafeCryptHandles.cs
- GridItemPatternIdentifiers.cs
- AsyncOperation.cs
- IDispatchConstantAttribute.cs
- CollectionsUtil.cs
- SessionStateItemCollection.cs
- NamedElement.cs
- ResourceManager.cs
- QueryConverter.cs
- FunctionDefinition.cs
- Serializer.cs
- _NegoState.cs
- safePerfProviderHandle.cs
- ZoneMembershipCondition.cs
- AnnotationObservableCollection.cs
- PreviewKeyDownEventArgs.cs
- mansign.cs
- CacheOutputQuery.cs
- TypeLoadException.cs
- PrintDialogException.cs
- XmlToDatasetMap.cs
- ServiceOperationViewControl.cs
- MimeMapping.cs
- FormsAuthenticationUserCollection.cs
- InvalidPropValue.cs
- CodeLinePragma.cs
- ProtectedConfigurationSection.cs
- Window.cs
- XmlEventCache.cs
- ToolBarDesigner.cs
- EventMappingSettingsCollection.cs
- FixUpCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- TextCollapsingProperties.cs
- EntityWithKeyStrategy.cs
- DurableErrorHandler.cs
- LinqDataSourceContextEventArgs.cs
- CancelEventArgs.cs
- TypedOperationInfo.cs
- DataKeyCollection.cs
- CodeTryCatchFinallyStatement.cs
- ObjectDataSourceStatusEventArgs.cs
- SerializerWriterEventHandlers.cs
- SendMailErrorEventArgs.cs
- AspNetSynchronizationContext.cs
- CodeGeneratorOptions.cs
- RandomDelaySendsAsyncResult.cs
- DropShadowBitmapEffect.cs
- NamespaceCollection.cs
- ClientSettingsProvider.cs
- Delegate.cs
- SizeConverter.cs
- contentDescriptor.cs
- PageVisual.cs
- PbrsForward.cs
- CreateParams.cs