Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / InlineUIContainer.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AccessText.cs
- TableCellAutomationPeer.cs
- SByte.cs
- EventLogInternal.cs
- CommandDevice.cs
- ConcurrencyBehavior.cs
- TreeNodeStyleCollection.cs
- ConfigurationFileMap.cs
- XmlWrappingReader.cs
- ToolStripRenderer.cs
- AssemblyHash.cs
- MenuItem.cs
- FontUnit.cs
- Maps.cs
- RegexReplacement.cs
- PbrsForward.cs
- ValueOfAction.cs
- Bezier.cs
- FileStream.cs
- ExtractedStateEntry.cs
- DiagnosticEventProvider.cs
- SynchronizedDispatch.cs
- SqlServer2KCompatibilityCheck.cs
- XPathMultyIterator.cs
- RectAnimationBase.cs
- AnnotationComponentManager.cs
- QuadraticBezierSegment.cs
- AssemblyBuilder.cs
- ValidationSummary.cs
- XPathExpr.cs
- ComponentEditorPage.cs
- Domain.cs
- TextParaClient.cs
- BitArray.cs
- ServiceInfo.cs
- TimelineGroup.cs
- JournalEntryListConverter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ListItemCollection.cs
- SymDocumentType.cs
- HyperLinkColumn.cs
- ThreadStartException.cs
- IdentityReference.cs
- SqlConnectionStringBuilder.cs
- CurrentChangingEventArgs.cs
- DataViewManagerListItemTypeDescriptor.cs
- Subtree.cs
- EditorAttribute.cs
- Point3DAnimationBase.cs
- SecurityManager.cs
- HandoffBehavior.cs
- TraceUtils.cs
- MetadataUtilsSmi.cs
- WorkflowDesignerColors.cs
- SingleAnimationUsingKeyFrames.cs
- MultiSelectRootGridEntry.cs
- DataErrorValidationRule.cs
- RulePatternOps.cs
- RuntimeHandles.cs
- VisualTreeHelper.cs
- TextDecorationCollection.cs
- Style.cs
- RepeatButtonAutomationPeer.cs
- ConfigurationManager.cs
- Oci.cs
- FirstMatchCodeGroup.cs
- BuildProviderAppliesToAttribute.cs
- DesignerCategoryAttribute.cs
- GridViewItemAutomationPeer.cs
- EdmToObjectNamespaceMap.cs
- ArgIterator.cs
- DetailsViewInsertEventArgs.cs
- ToolStripRendererSwitcher.cs
- FeedUtils.cs
- ListSortDescription.cs
- DateTimeValueSerializerContext.cs
- TransactionScope.cs
- ReadonlyMessageFilter.cs
- CryptoProvider.cs
- DynamicScriptObject.cs
- XmlStreamStore.cs
- ExpandedProjectionNode.cs
- DbExpressionBuilder.cs
- ViewCellRelation.cs
- WindowsNonControl.cs
- PreservationFileWriter.cs
- SignatureDescription.cs
- BuildResult.cs
- Facet.cs
- Evaluator.cs
- Base64WriteStateInfo.cs
- WindowAutomationPeer.cs
- UnsafeNativeMethods.cs
- DomNameTable.cs
- DataGridViewColumnCollection.cs
- NamespaceEmitter.cs
- SqlParameterCollection.cs
- CollectionTypeElement.cs
- Pkcs7Signer.cs
- InvalidDataException.cs