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
- UInt64Converter.cs
- WindowsListViewSubItem.cs
- NumberFunctions.cs
- BufferedReceiveElement.cs
- DoubleCollectionConverter.cs
- EntityDataSourceDesigner.cs
- DrawingCollection.cs
- CollectionConverter.cs
- TagMapInfo.cs
- SecurityPermission.cs
- DbDataReader.cs
- HttpNamespaceReservationInstallComponent.cs
- DataGridViewCheckBoxCell.cs
- PenThread.cs
- ConstantProjectedSlot.cs
- SessionStateContainer.cs
- SqlDesignerDataSourceView.cs
- ResourceBinder.cs
- RoleGroupCollection.cs
- SelectionEditor.cs
- MethodSignatureGenerator.cs
- WindowsScroll.cs
- SqlSupersetValidator.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- XmlDataDocument.cs
- WebResourceAttribute.cs
- ControlParameter.cs
- WebPartDescriptionCollection.cs
- SecurityKeyType.cs
- CodeCompileUnit.cs
- DBDataPermission.cs
- TemplateDefinition.cs
- WbemException.cs
- CookieProtection.cs
- NavigationWindowAutomationPeer.cs
- XmlNamedNodeMap.cs
- PenThread.cs
- DropShadowBitmapEffect.cs
- TreeViewImageIndexConverter.cs
- SamlAssertionKeyIdentifierClause.cs
- IncomingWebRequestContext.cs
- SmiEventSink_Default.cs
- UseLicense.cs
- AnnotationHelper.cs
- DesignerCapabilities.cs
- WindowsGraphicsWrapper.cs
- RuntimeConfig.cs
- ToggleButton.cs
- SystemKeyConverter.cs
- SemanticResultValue.cs
- RepeaterDataBoundAdapter.cs
- TextParagraph.cs
- DataDocumentXPathNavigator.cs
- ServiceBehaviorElementCollection.cs
- SyndicationItem.cs
- SqlDuplicator.cs
- TransformValueSerializer.cs
- DesignerActionUIStateChangeEventArgs.cs
- FileDialog.cs
- HtmlLink.cs
- ToolStripArrowRenderEventArgs.cs
- InvalidWMPVersionException.cs
- BitmapSourceSafeMILHandle.cs
- Annotation.cs
- RawStylusInputCustomDataList.cs
- DataGridViewCellCollection.cs
- MessagePropertyDescription.cs
- EmptyStringExpandableObjectConverter.cs
- ListViewGroup.cs
- PerformanceCountersElement.cs
- MarginsConverter.cs
- Crypto.cs
- MatrixStack.cs
- DataBindingCollectionEditor.cs
- AssociationTypeEmitter.cs
- BasePattern.cs
- Matrix3D.cs
- MultipartContentParser.cs
- Transform3DGroup.cs
- Funcletizer.cs
- Int32CAMarshaler.cs
- SqlUtil.cs
- BlobPersonalizationState.cs
- MethodSignatureGenerator.cs
- AppearanceEditorPart.cs
- FieldCollectionEditor.cs
- XamlTypeMapperSchemaContext.cs
- ListSourceHelper.cs
- httpapplicationstate.cs
- DelegatingTypeDescriptionProvider.cs
- RbTree.cs
- ConstructorBuilder.cs
- GenericEnumerator.cs
- MemoryPressure.cs
- SchemaObjectWriter.cs
- WebHeaderCollection.cs
- ItemsControl.cs
- XmlSchemaImport.cs
- TypeDescriptor.cs
- FixedSOMLineCollection.cs