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
- WorkflowOperationBehavior.cs
- Double.cs
- PageContentCollection.cs
- AuthenticationServiceManager.cs
- ToolStripPanelRenderEventArgs.cs
- WebPartVerbsEventArgs.cs
- OneToOneMappingSerializer.cs
- BinHexEncoding.cs
- StrokeNode.cs
- SynchronizationFilter.cs
- EngineSite.cs
- SafeViewOfFileHandle.cs
- Duration.cs
- QueryIntervalOp.cs
- InvalidFilterCriteriaException.cs
- ObjectDataSourceDesigner.cs
- CodeArgumentReferenceExpression.cs
- Vector3D.cs
- IPipelineRuntime.cs
- AnimationTimeline.cs
- TextSyndicationContentKindHelper.cs
- SafeArrayRankMismatchException.cs
- WebConfigurationHostFileChange.cs
- XmlDataSourceNodeDescriptor.cs
- CodeAccessSecurityEngine.cs
- RowCache.cs
- XpsFont.cs
- TabletDeviceInfo.cs
- DataGridPageChangedEventArgs.cs
- ListManagerBindingsCollection.cs
- SimpleHandlerBuildProvider.cs
- MainMenu.cs
- Win32Exception.cs
- MenuTracker.cs
- WebServiceParameterData.cs
- UriParserTemplates.cs
- M3DUtil.cs
- ActivityMarkupSerializationProvider.cs
- GenericXmlSecurityToken.cs
- SoapAttributeAttribute.cs
- PageWrapper.cs
- DiagnosticsConfiguration.cs
- X509Certificate.cs
- SettingsBase.cs
- Drawing.cs
- BasicCellRelation.cs
- ScriptingWebServicesSectionGroup.cs
- Int16Converter.cs
- ConstructorExpr.cs
- WindowsFont.cs
- Typography.cs
- DesignTimeType.cs
- DocumentViewerConstants.cs
- ReversePositionQuery.cs
- SQLChars.cs
- CodeDirectoryCompiler.cs
- GcSettings.cs
- InternalSendMessage.cs
- DataGridViewTextBoxEditingControl.cs
- Oci.cs
- ToolStripControlHost.cs
- AttributedMetaModel.cs
- BindingGroup.cs
- StyleBamlTreeBuilder.cs
- ThreadInterruptedException.cs
- OdbcConnectionHandle.cs
- ValidatingReaderNodeData.cs
- XmlUrlEditor.cs
- CodeIdentifiers.cs
- CopyNodeSetAction.cs
- EventHandlerList.cs
- WorkerRequest.cs
- ConfigsHelper.cs
- ImportOptions.cs
- EditorZoneAutoFormat.cs
- PerformanceCounterPermissionEntryCollection.cs
- TableRow.cs
- SettingsProviderCollection.cs
- NumericUpDownAccelerationCollection.cs
- AttributedMetaModel.cs
- ConsumerConnectionPointCollection.cs
- _KerberosClient.cs
- DataGridViewRowCancelEventArgs.cs
- webbrowsersite.cs
- DataGridViewSortCompareEventArgs.cs
- AppDomainUnloadedException.cs
- XPathSelfQuery.cs
- BinaryObjectReader.cs
- HelpProvider.cs
- ControlParameter.cs
- TextLineResult.cs
- MarshalByValueComponent.cs
- DesignerForm.cs
- EdmComplexPropertyAttribute.cs
- XmlName.cs
- ReflectionUtil.cs
- SpnEndpointIdentity.cs
- PeerToPeerException.cs
- FixedPageProcessor.cs
- VisualStyleRenderer.cs