Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media3D / ModelVisual3D.cs / 1 / ModelVisual3D.cs
//---------------------------------------------------------------------------- // //// Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 6/9/2005 : [....] - Created // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Media; using MS.Internal.Media3D; using System; using System.Diagnostics; using System.Collections.Specialized; using System.ComponentModel; using System.Security; using System.Windows.Media.Composition; using System.Windows.Markup; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// ModelVisual3D is a Visual3D which draws the given Model3D. /// ModelVisual3D is usable from Xaml. /// [ContentProperty("Children")] public class ModelVisual3D : Visual3D, IAddChild { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default ctor /// public ModelVisual3D() { _children = new Visual3DCollection(this); } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Derived class must implement to support Visual children. The method must return /// the child at the specified index. Index must be between 0 and GetVisualChildrenCount-1. /// /// By default a Visual does not have any children. /// /// Remark: /// During this virtual call it is not valid to modify the Visual tree. /// protected sealed override Visual3D GetVisual3DChild(int index) { //VisualCollection does the range check for index return _children[index]; } ////// Derived classes override this property to enable the Visual code to enumerate /// the Visual children. Derived classes need to return the number of children /// from this method. /// /// By default a Visual does not have any children. /// /// Remark: During this virtual method the Visual tree must not be modified. /// protected sealed override int Visual3DChildrenCount { get { return _children.Count; } } void IAddChild.AddChild(Object value) { if( value == null ) { throw new System.ArgumentNullException("value"); } Visual3D visual3D = value as Visual3D; if (visual3D == null) { throw new System.ArgumentException(SR.Get(SRID.Collection_BadType, this.GetType().Name, value.GetType().Name, typeof(Visual3D).Name)); } Children.Add(visual3D); } void IAddChild.AddText(string text) { // The only text we accept is whitespace, which we ignore. foreach (char c in text) { if (!Char.IsWhiteSpace(c)) { throw new System.InvalidOperationException(SR.Get(SRID.AddText_Invalid, this.GetType().Name)); } } } ////// Children of this Visual3D /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public Visual3DCollection Children { get { VerifyAPIReadOnly(); return _children; } } ////// DependencyProperty which backs the ModelVisual3D.Content property. /// public static readonly DependencyProperty ContentProperty = DependencyProperty.Register( "Content", /* propertyType = */ typeof(Model3D), /* ownerType = */ typeof(ModelVisual3D), new PropertyMetadata(ContentPropertyChanged), (ValidateValueCallback) delegate { return MediaContext.CurrentMediaContext.WriteAccessEnabled; }); private static void ContentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ModelVisual3D owner = ((ModelVisual3D) d); // if it's not a subproperty change, then we need to change the protected Model property of Visual3D if (!e.IsASubPropertyChange) { owner.Visual3DModel = (Model3D)e.NewValue; } } ////// The Model3D to render /// public Model3D Content { get { return (Model3D) GetValue(ContentProperty); } set { SetValue(ContentProperty, value); } } /// For binary compatability we need to keep the Transform DP and proprety here public static new readonly DependencyProperty TransformProperty = Visual3D.TransformProperty; ////// Transform for this Visual3D. /// public new Transform3D Transform { get { return (Transform3D) GetValue(TransformProperty); } set { SetValue(TransformProperty, value); } } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ //----------------------------------------------------- // // Public Events // //------------------------------------------------------ //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private readonly Visual3DCollection _children; #endregion Private Fields //----------------------------------------------------- // // Internal Fields // //------------------------------------------------------ #region Internal Fields #endregion Internal Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // //// Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: // // History: // 6/9/2005 : [....] - Created // //--------------------------------------------------------------------------- using MS.Internal; using MS.Internal.Media; using MS.Internal.Media3D; using System; using System.Diagnostics; using System.Collections.Specialized; using System.ComponentModel; using System.Security; using System.Windows.Media.Composition; using System.Windows.Markup; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// ModelVisual3D is a Visual3D which draws the given Model3D. /// ModelVisual3D is usable from Xaml. /// [ContentProperty("Children")] public class ModelVisual3D : Visual3D, IAddChild { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Default ctor /// public ModelVisual3D() { _children = new Visual3DCollection(this); } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Derived class must implement to support Visual children. The method must return /// the child at the specified index. Index must be between 0 and GetVisualChildrenCount-1. /// /// By default a Visual does not have any children. /// /// Remark: /// During this virtual call it is not valid to modify the Visual tree. /// protected sealed override Visual3D GetVisual3DChild(int index) { //VisualCollection does the range check for index return _children[index]; } ////// Derived classes override this property to enable the Visual code to enumerate /// the Visual children. Derived classes need to return the number of children /// from this method. /// /// By default a Visual does not have any children. /// /// Remark: During this virtual method the Visual tree must not be modified. /// protected sealed override int Visual3DChildrenCount { get { return _children.Count; } } void IAddChild.AddChild(Object value) { if( value == null ) { throw new System.ArgumentNullException("value"); } Visual3D visual3D = value as Visual3D; if (visual3D == null) { throw new System.ArgumentException(SR.Get(SRID.Collection_BadType, this.GetType().Name, value.GetType().Name, typeof(Visual3D).Name)); } Children.Add(visual3D); } void IAddChild.AddText(string text) { // The only text we accept is whitespace, which we ignore. foreach (char c in text) { if (!Char.IsWhiteSpace(c)) { throw new System.InvalidOperationException(SR.Get(SRID.AddText_Invalid, this.GetType().Name)); } } } ////// Children of this Visual3D /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public Visual3DCollection Children { get { VerifyAPIReadOnly(); return _children; } } ////// DependencyProperty which backs the ModelVisual3D.Content property. /// public static readonly DependencyProperty ContentProperty = DependencyProperty.Register( "Content", /* propertyType = */ typeof(Model3D), /* ownerType = */ typeof(ModelVisual3D), new PropertyMetadata(ContentPropertyChanged), (ValidateValueCallback) delegate { return MediaContext.CurrentMediaContext.WriteAccessEnabled; }); private static void ContentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ModelVisual3D owner = ((ModelVisual3D) d); // if it's not a subproperty change, then we need to change the protected Model property of Visual3D if (!e.IsASubPropertyChange) { owner.Visual3DModel = (Model3D)e.NewValue; } } ////// The Model3D to render /// public Model3D Content { get { return (Model3D) GetValue(ContentProperty); } set { SetValue(ContentProperty, value); } } /// For binary compatability we need to keep the Transform DP and proprety here public static new readonly DependencyProperty TransformProperty = Visual3D.TransformProperty; ////// Transform for this Visual3D. /// public new Transform3D Transform { get { return (Transform3D) GetValue(TransformProperty); } set { SetValue(TransformProperty, value); } } #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ //----------------------------------------------------- // // Public Events // //------------------------------------------------------ //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private readonly Visual3DCollection _children; #endregion Private Fields //----------------------------------------------------- // // Internal Fields // //------------------------------------------------------ #region Internal Fields #endregion Internal Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SolidColorBrush.cs
- ACL.cs
- FixedHighlight.cs
- AssemblyResourceLoader.cs
- StyleHelper.cs
- CollectionBuilder.cs
- PrimitiveType.cs
- OpenTypeLayout.cs
- ListDesigner.cs
- DataGridViewRowConverter.cs
- mansign.cs
- Span.cs
- NumericPagerField.cs
- indexingfiltermarshaler.cs
- XmlValidatingReader.cs
- StylusEditingBehavior.cs
- MemoryPressure.cs
- DataIdProcessor.cs
- ManualResetEvent.cs
- TextEffect.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- MessageQueuePermissionEntryCollection.cs
- OledbConnectionStringbuilder.cs
- WebPartUserCapability.cs
- OverrideMode.cs
- RemotingException.cs
- XPathBuilder.cs
- XmlComment.cs
- BasicDesignerLoader.cs
- PathFigure.cs
- LightweightCodeGenerator.cs
- FilterQueryOptionExpression.cs
- LayoutInformation.cs
- MachineKeyConverter.cs
- PenLineCapValidation.cs
- XamlToRtfParser.cs
- ZipIOExtraFieldElement.cs
- OuterGlowBitmapEffect.cs
- QualificationDataItem.cs
- MinMaxParagraphWidth.cs
- ClientRoleProvider.cs
- ListBoxChrome.cs
- ResourcesBuildProvider.cs
- ArgIterator.cs
- ResourceDictionary.cs
- securitycriticaldataformultiplegetandset.cs
- UserPreferenceChangingEventArgs.cs
- DispatchWrapper.cs
- InkCanvasAutomationPeer.cs
- PolyBezierSegment.cs
- RegexCapture.cs
- FrameworkContentElement.cs
- TokenFactoryFactory.cs
- TextModifier.cs
- BamlResourceDeserializer.cs
- HeaderCollection.cs
- ImplicitInputBrush.cs
- DataRowCollection.cs
- View.cs
- FragmentQuery.cs
- PKCS1MaskGenerationMethod.cs
- SimpleHandlerBuildProvider.cs
- TabItemAutomationPeer.cs
- AudioFileOut.cs
- IsolatedStoragePermission.cs
- XmlSchemaElement.cs
- AuthorizationRule.cs
- ReadOnlyDataSourceView.cs
- SubMenuStyleCollectionEditor.cs
- ThemeDirectoryCompiler.cs
- MessageTransmitTraceRecord.cs
- Math.cs
- _LoggingObject.cs
- TypePropertyEditor.cs
- VersionedStream.cs
- CatalogZoneBase.cs
- MediaElement.cs
- SharedRuntimeState.cs
- NotifyCollectionChangedEventArgs.cs
- TraceProvider.cs
- XmlSchemaSimpleTypeList.cs
- TextEditorContextMenu.cs
- XDRSchema.cs
- UpdateExpressionVisitor.cs
- CodeAttributeArgumentCollection.cs
- SQLInt32Storage.cs
- StringUtil.cs
- WebPartTransformer.cs
- TableLayoutRowStyleCollection.cs
- SmiSettersStream.cs
- TreeNodeBinding.cs
- FigureParagraph.cs
- CharacterString.cs
- DesignTimeParseData.cs
- TTSEngineTypes.cs
- ImageMapEventArgs.cs
- UseLicense.cs
- GenericAuthenticationEventArgs.cs
- XmlUrlResolver.cs
- ISO2022Encoding.cs