Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Documents / InlineUIContainer.cs / 1 / 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. //---------------------------------------------------------------------------- // // 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
- HtmlInputSubmit.cs
- RightNameExpirationInfoPair.cs
- WebPartPersonalization.cs
- XmlNamespaceDeclarationsAttribute.cs
- XmlSchemaAnnotation.cs
- GenericTypeParameterBuilder.cs
- DiagnosticStrings.cs
- Tokenizer.cs
- ApplicationHost.cs
- GrammarBuilderPhrase.cs
- SSmlParser.cs
- DataGridViewRowPrePaintEventArgs.cs
- SqlTriggerContext.cs
- QuaternionConverter.cs
- TrustManagerPromptUI.cs
- XmlUtil.cs
- validationstate.cs
- WindowsGraphicsWrapper.cs
- DataExchangeServiceBinder.cs
- CustomAssemblyResolver.cs
- PropertyTabChangedEvent.cs
- NavigationService.cs
- TableLayoutSettingsTypeConverter.cs
- VariableDesigner.xaml.cs
- Condition.cs
- DecimalAnimationBase.cs
- DefaultTextStore.cs
- BamlLocalizationDictionary.cs
- PagedDataSource.cs
- RootNamespaceAttribute.cs
- _KerberosClient.cs
- TextParagraphCache.cs
- ContainerControl.cs
- FontClient.cs
- XmlSchemaSimpleTypeRestriction.cs
- PageAsyncTaskManager.cs
- DataBinding.cs
- LinkedResource.cs
- _NetRes.cs
- ProxyAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- Bidi.cs
- HiddenFieldDesigner.cs
- GetPageCompletedEventArgs.cs
- HebrewCalendar.cs
- ViewGenerator.cs
- BuilderPropertyEntry.cs
- TextMarkerSource.cs
- SoapServerMessage.cs
- ExpressionNormalizer.cs
- FocusWithinProperty.cs
- COM2PropertyPageUITypeConverter.cs
- SafeNativeMethods.cs
- ViewGenResults.cs
- LockRecursionException.cs
- SQLCharsStorage.cs
- ToolStripItemClickedEventArgs.cs
- FtpWebResponse.cs
- ChannelBinding.cs
- WindowsFormsSectionHandler.cs
- SHA1.cs
- ApplicationSettingsBase.cs
- DecoderExceptionFallback.cs
- XmlNode.cs
- GroupedContextMenuStrip.cs
- DomainConstraint.cs
- PresentationAppDomainManager.cs
- ReverseInheritProperty.cs
- WebServiceReceiveDesigner.cs
- CompiledAction.cs
- ResourceReferenceKeyNotFoundException.cs
- PersonalizationStateInfoCollection.cs
- FacetDescription.cs
- AnnotationHighlightLayer.cs
- SwitchAttribute.cs
- PointAnimationClockResource.cs
- VarInfo.cs
- ImageSourceValueSerializer.cs
- Pen.cs
- StyleModeStack.cs
- StylusOverProperty.cs
- SQLUtility.cs
- NamespaceList.cs
- Pair.cs
- CatalogPartCollection.cs
- SafePEFileHandle.cs
- ResolveNameEventArgs.cs
- SerialStream.cs
- CustomSignedXml.cs
- BitmapInitialize.cs
- ScriptControl.cs
- SiteMapPath.cs
- RequestCachePolicyConverter.cs
- UnsafeNativeMethods.cs
- Clock.cs
- ConstructorExpr.cs
- WebFaultException.cs
- NavigatorInput.cs
- QuotedStringFormatReader.cs
- BooleanKeyFrameCollection.cs