Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- XmlSchemaExternal.cs
- SemanticBasicElement.cs
- TreeBuilderXamlTranslator.cs
- CqlErrorHelper.cs
- FontCacheLogic.cs
- MinimizableAttributeTypeConverter.cs
- UnauthorizedAccessException.cs
- LOSFormatter.cs
- XMLDiffLoader.cs
- Command.cs
- RoleManagerModule.cs
- TextEndOfLine.cs
- RSAProtectedConfigurationProvider.cs
- CanonicalFormWriter.cs
- ContextDataSource.cs
- DelegateHelpers.cs
- HScrollProperties.cs
- IdentityHolder.cs
- ObjectItemCollection.cs
- XNodeValidator.cs
- TraceContextEventArgs.cs
- MessageBox.cs
- AnnotationMap.cs
- MenuItemStyleCollection.cs
- EventBookmark.cs
- State.cs
- Logging.cs
- WebPartTransformerAttribute.cs
- XamlPoint3DCollectionSerializer.cs
- PackWebRequest.cs
- XmlSchemaValidationException.cs
- ImageAnimator.cs
- FrameworkObject.cs
- Collection.cs
- TransformerConfigurationWizardBase.cs
- ProviderSettings.cs
- AutomationAttributeInfo.cs
- TailCallAnalyzer.cs
- MetadataStore.cs
- ComAdminWrapper.cs
- GlobalizationSection.cs
- AggregateNode.cs
- TransactedReceiveData.cs
- ToggleButtonAutomationPeer.cs
- BuilderPropertyEntry.cs
- CapabilitiesState.cs
- ConnectivityStatus.cs
- RegexGroup.cs
- XmlDomTextWriter.cs
- GridItemProviderWrapper.cs
- Expression.cs
- DefinitionBase.cs
- linebase.cs
- NumberAction.cs
- SHA512.cs
- TagElement.cs
- HostedHttpRequestAsyncResult.cs
- AQNBuilder.cs
- ColumnResizeUndoUnit.cs
- HttpAsyncResult.cs
- WrappedKeySecurityTokenParameters.cs
- RestClientProxyHandler.cs
- ObjectConverter.cs
- IsolatedStorageSecurityState.cs
- _emptywebproxy.cs
- NavigationExpr.cs
- BooleanFacetDescriptionElement.cs
- ILGenerator.cs
- TraceLevelStore.cs
- TreeViewHitTestInfo.cs
- FormViewPagerRow.cs
- ZipIOBlockManager.cs
- DateTimeFormatInfoScanner.cs
- TypeConverters.cs
- TextReader.cs
- GradientBrush.cs
- TypeHelpers.cs
- CancellationState.cs
- CommunicationException.cs
- SpanIndex.cs
- OracleBinary.cs
- ZipPackage.cs
- ContainerFilterService.cs
- PropertyInformationCollection.cs
- UserNameSecurityToken.cs
- LayoutUtils.cs
- Int16AnimationBase.cs
- WebPartUtil.cs
- OutputCacheEntry.cs
- WebPartEditorCancelVerb.cs
- EncoderBestFitFallback.cs
- CodeGotoStatement.cs
- KeyInfo.cs
- Int64AnimationUsingKeyFrames.cs
- CatalogUtil.cs
- EntryPointNotFoundException.cs
- OdbcException.cs
- SystemInformation.cs
- datacache.cs
- HttpRequest.cs