Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / InlineUIContainer.cs / 2 / 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
- Range.cs
- EqualityArray.cs
- KeyToListMap.cs
- ResponseBodyWriter.cs
- DecoderFallbackWithFailureFlag.cs
- HttpListenerRequest.cs
- FacetChecker.cs
- CompositeFontFamily.cs
- InvalidOleVariantTypeException.cs
- FixedSOMPageElement.cs
- StructuredProperty.cs
- TextUtf8RawTextWriter.cs
- TypeSystemProvider.cs
- PointHitTestResult.cs
- Misc.cs
- TypeKeyValue.cs
- IInstanceTable.cs
- WindowsGraphicsCacheManager.cs
- BaseParagraph.cs
- WindowClosedEventArgs.cs
- UserControl.cs
- AppLevelCompilationSectionCache.cs
- UnmanagedMemoryStream.cs
- WindowsScrollBarBits.cs
- AnnouncementService.cs
- CommonXSendMessage.cs
- ADRoleFactory.cs
- XDeferredAxisSource.cs
- PageOutputColor.cs
- ToolStripScrollButton.cs
- listitem.cs
- EventLog.cs
- XmlAnyElementAttributes.cs
- LinearGradientBrush.cs
- SamlAdvice.cs
- ClientSession.cs
- ArgumentNullException.cs
- PageVisual.cs
- ChannelCredentials.cs
- HttpModuleCollection.cs
- BulletedListEventArgs.cs
- OperationContextScope.cs
- CodeMethodReturnStatement.cs
- X509Utils.cs
- ExtenderProvidedPropertyAttribute.cs
- BindingManagerDataErrorEventArgs.cs
- MenuItem.cs
- SQLSingleStorage.cs
- RectKeyFrameCollection.cs
- HwndKeyboardInputProvider.cs
- XmlSchemaSimpleType.cs
- TabItemAutomationPeer.cs
- MethodSet.cs
- HelpInfo.cs
- LineServicesRun.cs
- XmlAttributeProperties.cs
- TemplatePagerField.cs
- KeySpline.cs
- JavaScriptString.cs
- LayoutTable.cs
- SecurityContext.cs
- DesignerTransaction.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- XmlEncoding.cs
- NamespaceDisplay.xaml.cs
- FileInfo.cs
- ColumnHeaderConverter.cs
- Int64AnimationUsingKeyFrames.cs
- XmlComplianceUtil.cs
- EffectiveValueEntry.cs
- ElementProxy.cs
- StateMachineWorkflowInstance.cs
- DataColumnMapping.cs
- ResourcesChangeInfo.cs
- FileRegion.cs
- Int32Rect.cs
- ChangePassword.cs
- CheckBoxStandardAdapter.cs
- ListItemCollection.cs
- NumberSubstitution.cs
- XPathDocument.cs
- SmtpNtlmAuthenticationModule.cs
- HostedHttpTransportManager.cs
- SourceFileBuildProvider.cs
- ISAPIWorkerRequest.cs
- InsufficientMemoryException.cs
- UpDownBase.cs
- IDReferencePropertyAttribute.cs
- DragStartedEventArgs.cs
- CultureInfo.cs
- AuthenticationService.cs
- Preprocessor.cs
- _HTTPDateParse.cs
- CommandConverter.cs
- HtmlInputControl.cs
- DocumentPropertiesDialog.cs
- SqlDataSourceStatusEventArgs.cs
- OrderedHashRepartitionStream.cs
- Pair.cs
- NamedPipeTransportManager.cs