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
- LoopExpression.cs
- Part.cs
- HtmlElementCollection.cs
- JoinElimination.cs
- SqlResolver.cs
- TemplatedMailWebEventProvider.cs
- SoapServerProtocol.cs
- OutOfProcStateClientManager.cs
- Command.cs
- XmlIgnoreAttribute.cs
- TabControl.cs
- InternalBufferOverflowException.cs
- RemoteWebConfigurationHost.cs
- PictureBox.cs
- RightsManagementUser.cs
- FormatConvertedBitmap.cs
- TrackingWorkflowEventArgs.cs
- ResourceSetExpression.cs
- LineSegment.cs
- AttributeUsageAttribute.cs
- TreeView.cs
- NameTable.cs
- RoleBoolean.cs
- RadioButtonBaseAdapter.cs
- ListDataHelper.cs
- IgnoreFlushAndCloseStream.cs
- DesignerActionService.cs
- TextFragmentEngine.cs
- SkipQueryOptionExpression.cs
- OdbcConnectionPoolProviderInfo.cs
- XmlSchemaAttributeGroup.cs
- QilBinary.cs
- DeferrableContentConverter.cs
- TemplateLookupAction.cs
- ObjectSet.cs
- ProviderException.cs
- FixedHighlight.cs
- GeneralTransform3D.cs
- StorageAssociationTypeMapping.cs
- COM2Properties.cs
- InkCollectionBehavior.cs
- Base64Decoder.cs
- BlockUIContainer.cs
- OptionUsage.cs
- SimpleLine.cs
- ConstraintStruct.cs
- WindowsFormsSynchronizationContext.cs
- SortFieldComparer.cs
- NavigationProgressEventArgs.cs
- EmptyCollection.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ProviderUtil.cs
- NumberAction.cs
- DivideByZeroException.cs
- ConfigWriter.cs
- InputProviderSite.cs
- DetailsViewInsertEventArgs.cs
- ListenerElementsCollection.cs
- ColumnTypeConverter.cs
- GridViewAutomationPeer.cs
- WorkflowRuntimeSection.cs
- DataGridViewRowCancelEventArgs.cs
- ButtonColumn.cs
- ExtensionFile.cs
- Rotation3DKeyFrameCollection.cs
- SqlDataSourceCache.cs
- BypassElement.cs
- GatewayIPAddressInformationCollection.cs
- CachingHintValidation.cs
- InputBuffer.cs
- ClusterSafeNativeMethods.cs
- UrlMappingsModule.cs
- ObjectTypeMapping.cs
- SignerInfo.cs
- ListControl.cs
- Attributes.cs
- MultipleViewPattern.cs
- RenameRuleObjectDialog.Designer.cs
- ToolStripManager.cs
- TransactionException.cs
- LocatorBase.cs
- DataGridViewTopLeftHeaderCell.cs
- COM2PropertyBuilderUITypeEditor.cs
- CommentEmitter.cs
- HWStack.cs
- AlphabeticalEnumConverter.cs
- DataGridViewSelectedCellCollection.cs
- QilReference.cs
- DiscoveryRequestHandler.cs
- TraceRecord.cs
- SqlXml.cs
- OdbcStatementHandle.cs
- DbConnectionStringBuilder.cs
- NameValuePermission.cs
- linebase.cs
- ProxyGenerator.cs
- WebBrowserProgressChangedEventHandler.cs
- KeyFrames.cs
- WebPartDisplayModeEventArgs.cs
- Underline.cs