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
- rsa.cs
- StackBuilderSink.cs
- CursorInteropHelper.cs
- NativeWindow.cs
- IntegerFacetDescriptionElement.cs
- ParamArrayAttribute.cs
- CodeTypeParameterCollection.cs
- PageAsyncTaskManager.cs
- ControlBuilder.cs
- linebase.cs
- DBConcurrencyException.cs
- HwndTarget.cs
- Rect3DConverter.cs
- UrlEncodedParameterWriter.cs
- MessageEventSubscriptionService.cs
- DuplicateWaitObjectException.cs
- EllipseGeometry.cs
- RegexCaptureCollection.cs
- ADMembershipProvider.cs
- EmulateRecognizeCompletedEventArgs.cs
- MessageTraceRecord.cs
- WebPartConnectionCollection.cs
- UniqueIdentifierService.cs
- UrlAuthorizationModule.cs
- CompositeFontInfo.cs
- DeferredRunTextReference.cs
- UnmanagedMemoryStreamWrapper.cs
- RectAnimationBase.cs
- TextTreeRootNode.cs
- RecordsAffectedEventArgs.cs
- TypeContext.cs
- ConfigurationErrorsException.cs
- Hex.cs
- XmlEntity.cs
- DataGridTable.cs
- RightsManagementProvider.cs
- RemotingConfigParser.cs
- XmlEncodedRawTextWriter.cs
- SQLInt16.cs
- CustomTypeDescriptor.cs
- StringBuilder.cs
- SelectiveScrollingGrid.cs
- XmlEncoding.cs
- sqlser.cs
- HtmlShim.cs
- SimpleTypeResolver.cs
- HostedTcpTransportManager.cs
- _BaseOverlappedAsyncResult.cs
- FontCacheUtil.cs
- BitmapPalette.cs
- PrinterUnitConvert.cs
- FreezableCollection.cs
- QilValidationVisitor.cs
- WindowsStatic.cs
- MediaEntryAttribute.cs
- XmlDocumentType.cs
- filewebrequest.cs
- GridView.cs
- NestPullup.cs
- ByteAnimationBase.cs
- RightsManagementEncryptionTransform.cs
- LineServicesRun.cs
- ForceCopyBuildProvider.cs
- SecurityTokenAuthenticator.cs
- cookiecollection.cs
- ThicknessAnimationBase.cs
- DiagnosticTraceSource.cs
- PersonalizationAdministration.cs
- MenuItemBinding.cs
- QueryAccessibilityHelpEvent.cs
- HtmlInputImage.cs
- InputScope.cs
- FieldBuilder.cs
- FileClassifier.cs
- NotFiniteNumberException.cs
- ISFTagAndGuidCache.cs
- PropertyGridCommands.cs
- ListViewCommandEventArgs.cs
- NullRuntimeConfig.cs
- EndpointAddress.cs
- MemoryResponseElement.cs
- ProtocolsConfiguration.cs
- WebPartDisplayModeEventArgs.cs
- TextStore.cs
- NewExpression.cs
- TemplateXamlParser.cs
- DataGridViewTopRowAccessibleObject.cs
- SqlCacheDependencyDatabase.cs
- EditingScopeUndoUnit.cs
- ParseChildrenAsPropertiesAttribute.cs
- TypeDependencyAttribute.cs
- ContractMethodInfo.cs
- PauseStoryboard.cs
- IOException.cs
- XPathSelectionIterator.cs
- CompositeFontInfo.cs
- TextDecorationLocationValidation.cs
- GlobalItem.cs
- Serializer.cs
- securitycriticaldata.cs