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
- SettingsPropertyCollection.cs
- MediaTimeline.cs
- SharedUtils.cs
- TableCell.cs
- ScriptingScriptResourceHandlerSection.cs
- Int32AnimationUsingKeyFrames.cs
- ControlIdConverter.cs
- BulletDecorator.cs
- FrameworkContentElement.cs
- MetadataArtifactLoader.cs
- SetIndexBinder.cs
- Ticks.cs
- InfoCardHelper.cs
- ViewCellSlot.cs
- TypeSchema.cs
- Splitter.cs
- ObjectConverter.cs
- Cursors.cs
- RepeaterItemCollection.cs
- DoubleLinkList.cs
- MessageDecoder.cs
- TransformDescriptor.cs
- TypeUtil.cs
- SqlGenerator.cs
- XmlExpressionDumper.cs
- DataBinding.cs
- UITypeEditors.cs
- WindowsGraphics.cs
- Literal.cs
- GeneratedView.cs
- MultiTrigger.cs
- EntityDataSourceConfigureObjectContext.cs
- _SSPISessionCache.cs
- AutomationPropertyInfo.cs
- SettingsPropertyCollection.cs
- Barrier.cs
- SqlDataSourceCommandParser.cs
- CookieHandler.cs
- SelectionRangeConverter.cs
- Win32PrintDialog.cs
- ListControlConvertEventArgs.cs
- DiscreteKeyFrames.cs
- OdbcConnectionOpen.cs
- ThemeableAttribute.cs
- RtType.cs
- JoinQueryOperator.cs
- FactoryRecord.cs
- TypeNameConverter.cs
- BaseAddressElement.cs
- GACMembershipCondition.cs
- ContentPresenter.cs
- RemoteWebConfigurationHost.cs
- SmtpSection.cs
- ControlParameter.cs
- BuildProviderAppliesToAttribute.cs
- SectionXmlInfo.cs
- ComboBox.cs
- ParagraphVisual.cs
- HwndAppCommandInputProvider.cs
- InvalidPrinterException.cs
- WebPermission.cs
- LabelLiteral.cs
- DataBoundControl.cs
- SortQuery.cs
- RepeaterDataBoundAdapter.cs
- CollectionContainer.cs
- PropertyDescriptorCollection.cs
- KoreanCalendar.cs
- EventLogPermission.cs
- _ChunkParse.cs
- SqlProcedureAttribute.cs
- TextEncodedRawTextWriter.cs
- GridEntry.cs
- SqlCacheDependencyDatabase.cs
- TransactionBehavior.cs
- Delay.cs
- UnionQueryOperator.cs
- Monitor.cs
- ParserOptions.cs
- CollectionDataContract.cs
- AutoFocusStyle.xaml.cs
- DataListItem.cs
- WaitHandle.cs
- SqlCommandBuilder.cs
- DelegateArgument.cs
- ActivityBindForm.cs
- ArrayExtension.cs
- TimeStampChecker.cs
- RoutedUICommand.cs
- ListDictionaryInternal.cs
- ExtendedProperty.cs
- Tag.cs
- HttpHandlersSection.cs
- SqlRowUpdatingEvent.cs
- MatchAttribute.cs
- entityreference_tresulttype.cs
- StringUtil.cs
- CodeLabeledStatement.cs
- FrameworkContextData.cs
- AdPostCacheSubstitution.cs