Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- TdsParser.cs
- DataColumnCollection.cs
- UpdateException.cs
- TypeLoader.cs
- CommandManager.cs
- AttributeTable.cs
- xmlfixedPageInfo.cs
- PaperSize.cs
- SyndicationPerson.cs
- NotSupportedException.cs
- EnvelopedPkcs7.cs
- versioninfo.cs
- CompilerLocalReference.cs
- UnsafeMethods.cs
- FormViewModeEventArgs.cs
- DataViewSetting.cs
- DashStyle.cs
- AnnotationService.cs
- ConfigurationSectionCollection.cs
- Byte.cs
- ConfigViewGenerator.cs
- IdentityModelDictionary.cs
- QueryCacheEntry.cs
- DbMetaDataColumnNames.cs
- TextRangeBase.cs
- TableCell.cs
- InternalTransaction.cs
- OdbcError.cs
- EncoderReplacementFallback.cs
- GenericWebPart.cs
- MatcherBuilder.cs
- PropertyIdentifier.cs
- BindingContext.cs
- DiagnosticStrings.cs
- TextBoxAutoCompleteSourceConverter.cs
- FormsAuthenticationModule.cs
- PersonalizableTypeEntry.cs
- CategoryAttribute.cs
- ProcessModelInfo.cs
- ResourceReferenceExpressionConverter.cs
- CharStorage.cs
- IncrementalHitTester.cs
- CompressionTransform.cs
- storepermissionattribute.cs
- BindingValueChangedEventArgs.cs
- StorageMappingItemLoader.cs
- Base64Encoder.cs
- PerformanceCounterPermissionEntryCollection.cs
- SubclassTypeValidatorAttribute.cs
- CodeGenerator.cs
- TextMetrics.cs
- XPathItem.cs
- SafeThemeHandle.cs
- StyleCollection.cs
- RestClientProxyHandler.cs
- OdbcConnectionOpen.cs
- AssemblyAttributes.cs
- InteropEnvironment.cs
- HwndAppCommandInputProvider.cs
- DriveNotFoundException.cs
- XmlResolver.cs
- Permission.cs
- CreateCardRequest.cs
- PointHitTestParameters.cs
- WebEvents.cs
- SafeRegistryKey.cs
- DataGridViewTextBoxColumn.cs
- PeerCollaborationPermission.cs
- AttributeProviderAttribute.cs
- BeginSelectCardRequest.cs
- SqlClientWrapperSmiStream.cs
- DataSourceSelectArguments.cs
- MonthChangedEventArgs.cs
- ExcCanonicalXml.cs
- LazyTextWriterCreator.cs
- RowToFieldTransformer.cs
- SingleObjectCollection.cs
- HtmlControlPersistable.cs
- ContextMenuAutomationPeer.cs
- WebResourceAttribute.cs
- TextDecorationCollection.cs
- BoolLiteral.cs
- DatatypeImplementation.cs
- FrameAutomationPeer.cs
- GacUtil.cs
- FullTextState.cs
- thaishape.cs
- InputEventArgs.cs
- DataGridViewAccessibleObject.cs
- CompositeScriptReference.cs
- RequiredAttributeAttribute.cs
- Color.cs
- UserControl.cs
- PeerObject.cs
- VersionedStreamOwner.cs
- CodeGeneratorOptions.cs
- ComponentDispatcher.cs
- MatrixUtil.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- OptimisticConcurrencyException.cs