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
- X509SecurityTokenAuthenticator.cs
- ResXFileRef.cs
- ConfigurationStrings.cs
- DataViewManager.cs
- InvokeHandlers.cs
- AmbiguousMatchException.cs
- SingleAnimation.cs
- DllHostInitializer.cs
- Message.cs
- ChangeDirector.cs
- Scheduler.cs
- Condition.cs
- SettingsSection.cs
- ControlParameter.cs
- ConstructorNeedsTagAttribute.cs
- OleDbMetaDataFactory.cs
- SQLByte.cs
- XPathCompileException.cs
- DependencyPropertyConverter.cs
- List.cs
- MetadataArtifactLoaderFile.cs
- categoryentry.cs
- TaiwanLunisolarCalendar.cs
- RepeaterItemEventArgs.cs
- VirtualPath.cs
- ExpressionNode.cs
- ButtonColumn.cs
- OptimizerPatterns.cs
- EventLogEntryCollection.cs
- CodeSnippetStatement.cs
- RadioButtonList.cs
- XslVisitor.cs
- List.cs
- FormViewAutoFormat.cs
- DesignerVerbToolStripMenuItem.cs
- PageTheme.cs
- TableRow.cs
- SerializationTrace.cs
- ContainerSelectorBehavior.cs
- XmlSchemaNotation.cs
- VerifyHashRequest.cs
- DiscoveryExceptionDictionary.cs
- Decoder.cs
- OleDbReferenceCollection.cs
- FixedBufferAttribute.cs
- DataGridViewTextBoxCell.cs
- UserPreferenceChangingEventArgs.cs
- HttpClientCertificate.cs
- SimpleBitVector32.cs
- PlanCompilerUtil.cs
- PersistencePipeline.cs
- UnsafeNativeMethods.cs
- Crc32.cs
- XmlSerializerVersionAttribute.cs
- DeclaredTypeElementCollection.cs
- CustomTokenProvider.cs
- ToolZone.cs
- OleDbStruct.cs
- HttpHeaderCollection.cs
- ChildDocumentBlock.cs
- SerializableAttribute.cs
- TextServicesProperty.cs
- SspiWrapper.cs
- SerialReceived.cs
- NativeMethods.cs
- ResourcesBuildProvider.cs
- ResourceManagerWrapper.cs
- IApplicationTrustManager.cs
- QilTernary.cs
- NonParentingControl.cs
- SecurityUtils.cs
- LambdaCompiler.Expressions.cs
- MonitoringDescriptionAttribute.cs
- CodeDirectionExpression.cs
- LoginCancelEventArgs.cs
- SchemaCollectionCompiler.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- VideoDrawing.cs
- ExpressionBindingCollection.cs
- TypedDataSourceCodeGenerator.cs
- SecurityChannelListener.cs
- FileInfo.cs
- OutputCacheModule.cs
- SoapObjectReader.cs
- WasHttpModulesInstallComponent.cs
- RuleSettingsCollection.cs
- FileAuthorizationModule.cs
- ProcessProtocolHandler.cs
- DataViewManagerListItemTypeDescriptor.cs
- ReadWriteControlDesigner.cs
- SQLResource.cs
- InteropAutomationProvider.cs
- Visual.cs
- Tool.cs
- ContentHostHelper.cs
- DBSchemaTable.cs
- SourceFileInfo.cs
- InfoCardAsymmetricCrypto.cs
- LicenseContext.cs
- PropertyDescriptorCollection.cs