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
- TemplateControlParser.cs
- ChannelSinkStacks.cs
- DbConnectionPoolGroupProviderInfo.cs
- DataConnectionHelper.cs
- SelectionChangedEventArgs.cs
- ServiceHostFactory.cs
- LinqToSqlWrapper.cs
- SerializationStore.cs
- TextServicesHost.cs
- WindowsGraphicsCacheManager.cs
- CodeTypeConstructor.cs
- RawStylusInputCustomDataList.cs
- OdbcErrorCollection.cs
- SafeBitVector32.cs
- RunWorkerCompletedEventArgs.cs
- LinkClickEvent.cs
- SystemIPGlobalStatistics.cs
- CurrentChangedEventManager.cs
- SystemNetHelpers.cs
- ConnectionStringsExpressionEditor.cs
- CombinedHttpChannel.cs
- DataControlLinkButton.cs
- AsymmetricSecurityProtocolFactory.cs
- XmlTextReaderImpl.cs
- CompatibleIComparer.cs
- dtdvalidator.cs
- SpanIndex.cs
- BlurEffect.cs
- OrderPreservingPipeliningMergeHelper.cs
- AddInStore.cs
- UnionCodeGroup.cs
- PropertyGridDesigner.cs
- AppDomainUnloadedException.cs
- DependencyObject.cs
- SmiSettersStream.cs
- ServerType.cs
- ProtectedUri.cs
- SimpleApplicationHost.cs
- InstanceData.cs
- CheckBox.cs
- UIAgentAsyncBeginRequest.cs
- NativeMethodsOther.cs
- EntityKey.cs
- SystemWebExtensionsSectionGroup.cs
- CharStorage.cs
- BuiltInExpr.cs
- NullableIntAverageAggregationOperator.cs
- log.cs
- XMLUtil.cs
- RouteCollection.cs
- Enum.cs
- WebPartAddingEventArgs.cs
- WebHostScriptMappingsInstallComponent.cs
- EntitySet.cs
- Debug.cs
- TextDecorationLocationValidation.cs
- MatrixTransform3D.cs
- PresentationSource.cs
- KeyGestureConverter.cs
- base64Transforms.cs
- CodeTypeConstructor.cs
- ReflectionHelper.cs
- RoleGroupCollection.cs
- OpenFileDialog.cs
- TypeUnloadedException.cs
- WebPartEventArgs.cs
- SiteMapPathDesigner.cs
- ILGenerator.cs
- PlatformNotSupportedException.cs
- SqlVisitor.cs
- CodeSnippetStatement.cs
- RSAPKCS1KeyExchangeFormatter.cs
- CorrelationValidator.cs
- TextAnchor.cs
- NameValuePair.cs
- XmlQueryOutput.cs
- DefaultMemberAttribute.cs
- MetadataArtifactLoaderFile.cs
- OperationDescriptionCollection.cs
- WorkflowPersistenceContext.cs
- iisPickupDirectory.cs
- SqlTypesSchemaImporter.cs
- SqlDataAdapter.cs
- TreeNodeStyle.cs
- WebBrowserUriTypeConverter.cs
- HostProtectionPermission.cs
- DBNull.cs
- sqlser.cs
- PerformanceCounterCategory.cs
- UInt32.cs
- CriticalFinalizerObject.cs
- Content.cs
- TcpStreams.cs
- Point3DAnimation.cs
- ThreadWorkerController.cs
- RenderDataDrawingContext.cs
- KeysConverter.cs
- EventMappingSettings.cs
- CodeCommentStatement.cs
- _CacheStreams.cs