Langage

SpotLight Classe

Définition

Objet clair qui projette son effet dans une zone en forme de cône le long d’une direction spécifiée.

public ref class SpotLight sealed : System::Windows::Media::Media3D::PointLightBase
public sealed class SpotLight : System.Windows.Media.Media3D.PointLightBase
type SpotLight = class
    inherit PointLightBase
Public NotInheritable Class SpotLight
Inherits PointLightBase
Héritage

Exemples

L’exemple suivant montre comment créer une SpotLight scène 3D.

<!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
     to control the size of the light cone created by the SpotLight. The Direction and Position
     properties determine where the SpotLight is pointing in the scene. In this example, the Position
     of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
     of the 3D object. -->
<ModelVisual3D>
  <ModelVisual3D.Content>
    <SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1" 
      Position="1,1,6" Range="20"/>
  </ModelVisual3D.Content>
</ModelVisual3D>

Le code suivant montre l’ensemble de l’exemple.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <DockPanel>
    <Viewbox>
      <Canvas Width="321" Height="201">

        <!-- The Viewport3D provides a rendering surface for 3-D visual content. -->
        <Viewport3D ClipToBounds="True" Width="150" Height="150" Canvas.Left="0" Canvas.Top="10">

          <!-- Defines the camera used to view the 3D object. -->
          <Viewport3D.Camera>
            <PerspectiveCamera Position="0,0,2" LookDirection="0,0,-1" FieldOfView="60" />
          </Viewport3D.Camera>

          <!-- The ModelVisual3D children contain the 3D models -->
          <Viewport3D.Children>
            <!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
                 to control the size of the light cone created by the SpotLight. The Direction and Position
                 properties determine where the SpotLight is pointing in the scene. In this example, the Position
                 of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
                 of the 3D object. -->
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1" 
                  Position="1,1,6" Range="20"/>
              </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <GeometryModel3D>

                  <!-- The geometry specifies the shape of the 3D plane. In this sample, a flat sheet is created. -->
                  <GeometryModel3D.Geometry>
                    <MeshGeometry3D
                     TriangleIndices="0,1,2 3,4,5 "
                     Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
                     TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
                     Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
                  </GeometryModel3D.Geometry>

                  <!-- The material specifies the material applied to the 3D object. In this sample a linear gradient 
                       covers the surface of the 3D object.-->
                  <GeometryModel3D.Material>
                    <MaterialGroup>
                      <DiffuseMaterial>
                        <DiffuseMaterial.Brush>
                          <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                            <LinearGradientBrush.GradientStops>
                              <GradientStop Color="Yellow" Offset="0" />
                              <GradientStop Color="Red" Offset="0.25" />
                              <GradientStop Color="Blue" Offset="0.75" />
                              <GradientStop Color="LimeGreen" Offset="1" />
                            </LinearGradientBrush.GradientStops>
                          </LinearGradientBrush>
                        </DiffuseMaterial.Brush>
                      </DiffuseMaterial>
                    </MaterialGroup>
                  </GeometryModel3D.Material>
                </GeometryModel3D>
              </ModelVisual3D.Content>
            </ModelVisual3D>
          </Viewport3D.Children>

        </Viewport3D>
      </Canvas>
    </Viewbox>
  </DockPanel>
</Page>

Remarques

SpotLight est un type de PointLight, car il a une position, une plage et une atténuation. Toutefois, SpotLight vous pouvez également contrôler la direction, la forme et d’autres propriétés du cône de l’effet de la lumière.

Spécifiez les valeurs pour OuterConeAngle (au-delà de laquelle rien n’est éclairé) et InnerConeAngle (dans laquelle tout est entièrement éclairé) pour modifier l’effet de mise en lumière.

L’éclairage entre l’extérieur du cône intérieur et le cône externe tombe linéairement.

Diagramme à la une des projecteurs

Constructeurs

Nom Description
SpotLight()

Initialise une nouvelle instance de la classe SpotLight.

SpotLight(Color, Point3D, Vector3D, Double, Double)

Initialise une nouvelle instance de la SpotLight classe à l’aide des angles de couleur, de position, de direction et de cône spécifiés.

Champs

Nom Description
DirectionProperty

Identifie la Direction propriété de dépendance.

InnerConeAngleProperty

Identifie la InnerConeAngle propriété de dépendance.

OuterConeAngleProperty

Identifie la OuterConeAngle propriété de dépendance.

Propriétés

Nom Description
Bounds

Obtient un Rect3D qui spécifie la zone englobante alignée sur l’axe de ce Model3D.

(Hérité de Model3D)
CanFreeze

Obtient une valeur qui indique si l’objet peut être rendu non modifiable.

(Hérité de Freezable)
Color

Obtient ou définit la couleur de la lumière.

(Hérité de Light)
ConstantAttenuation

Obtient ou définit une valeur constante par laquelle l’intensité de la lumière diminue sur la distance.

(Hérité de PointLightBase)
DependencyObjectType

Obtient le DependencyObjectType type CLR de cette instance.

(Hérité de DependencyObject)
Direction

Obtient ou définit une Vector3D valeur qui spécifie la direction dans laquelle le SpotLight projette sa lumière.

Dispatcher

Obtient ce Dispatcher qui DispatcherObject est associé.

(Hérité de DispatcherObject)
HasAnimatedProperties

Obtient une valeur qui indique si un ou plusieurs AnimationClock objets sont associés à l’une des propriétés de dépendance de cet objet.

(Hérité de Animatable)
InnerConeAngle

Obtient ou définit un angle qui spécifie la proportion d’une SpotLightprojection en forme de cône dans laquelle la lumière illumine entièrement les objets de la scène.

IsFrozen

Obtient une valeur qui indique si l’objet est actuellement modifiable.

(Hérité de Freezable)
IsSealed

Obtient une valeur qui indique si cette instance est actuellement scellée (en lecture seule).

(Hérité de DependencyObject)
LinearAttenuation

Obtient ou définit une valeur qui spécifie la diminution linéaire de l’intensité de la lumière sur la distance.

(Hérité de PointLightBase)
OuterConeAngle

Obtient ou définit un angle qui spécifie la proportion d’une SpotLightprojection en forme de cône en dehors de laquelle la lumière ne illumine pas les objets de la scène.

Position

Obtient ou définit une Point3D valeur qui spécifie la position de la lumière dans l’espace mondial.

(Hérité de PointLightBase)
QuadraticAttenuation

Obtient ou définit une valeur qui spécifie la diminution de l’effet de la lumière sur la distance, calculée par une opération quadratique.

(Hérité de PointLightBase)
Range

Obtient ou définit la distance au-delà de laquelle la lumière n’a aucun effet.

(Hérité de PointLightBase)
Transform

Obtient ou définit l’ensemble Transform3D sur le modèle.

(Hérité de Model3D)

Méthodes

Nom Description
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Applique un AnimationClock à l’objet spécifié DependencyProperty. Si la propriété est déjà animée, la propriété HandoffBehavior spécifiée est utilisée.

(Hérité de Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Applique un AnimationClock à l’objet spécifié DependencyProperty. Si la propriété est déjà animée, le comportement de SnapshotAndReplace transfert est utilisé.

(Hérité de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Applique une animation au fichier spécifié DependencyProperty. L’animation est démarrée lorsque l’image suivante est rendue. Si la propriété spécifiée est déjà animée, celle-ci HandoffBehavior est utilisée.

(Hérité de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Applique une animation au fichier spécifié DependencyProperty. L’animation est démarrée lorsque l’image suivante est rendue. Si la propriété spécifiée est déjà animée, le comportement de SnapshotAndReplace transfert est utilisé.

(Hérité de Animatable)
CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)
ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un DependencyProperty identificateur.

(Hérité de DependencyObject)
ClearValue(DependencyPropertyKey)

Efface la valeur locale d’une propriété en lecture seule. La propriété à effacer est spécifiée par un DependencyPropertyKey.

(Hérité de DependencyObject)
Clone()

Crée un clone modifiable de ce SpotLightfichier, en effectuant des copies approfondies des valeurs de cet objet. Lors de la copie des propriétés de dépendance, cette méthode copie les références de ressources et les liaisons de données (mais elles peuvent ne plus être résolues), mais pas les animations ni leurs valeurs actuelles.

CloneCore(Freezable)

Rend l’instance un clone (copie approfondie) de la propriété de base (non animée) spécifiée Freezable .

(Hérité de Freezable)
CloneCurrentValue()

Crée un clone modifiable de cet SpotLight objet, effectuant des copies approfondies des valeurs actuelles de cet objet. Les références de ressources, les liaisons de données et les animations ne sont pas copiées, mais leurs valeurs actuelles sont.

CloneCurrentValueCore(Freezable)

Rend l’instance un clone modifiable (copie approfondie) de l’élément spécifié Freezable à l’aide de valeurs de propriété actuelles.

(Hérité de Freezable)
CoerceValue(DependencyProperty)

Force la valeur de la propriété de dépendance spécifiée. Pour ce faire, appelez n’importe quelle CoerceValueCallback fonction spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur l’appel DependencyObject.

(Hérité de DependencyObject)
CreateInstance()

Initialise une nouvelle instance de la classe Freezable.

(Hérité de Freezable)
CreateInstanceCore()

En cas d’implémentation dans une classe dérivée, crée une nouvelle instance de la Freezable classe dérivée.

(Hérité de Freezable)
Equals(Object)

Détermine si un élément fourni DependencyObject est équivalent à l’actuel DependencyObject.

(Hérité de DependencyObject)
Freeze()

Rend l’objet actuel non modifiable et définit sa IsFrozen propriété sur true.

(Hérité de Freezable)
FreezeCore(Boolean)

Rend cet Animatable objet non modifiable ou détermine s’il peut être rendu inmodifiable.

(Hérité de Animatable)
GetAnimationBaseValue(DependencyProperty)

Retourne la valeur non animée de l’objet spécifié DependencyProperty.

(Hérité de Animatable)
GetAsFrozen()

Crée une copie figée des valeurs de Freezablepropriété de base (non animées). Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence.

(Hérité de Freezable)
GetAsFrozenCore(Freezable)

Rend l’instance un clone figé de la propriété spécifiée à Freezable l’aide de valeurs de propriété de base (non animées).

(Hérité de Freezable)
GetCurrentValueAsFrozen()

Crée une copie figée de l’utilisation Freezable des valeurs de propriété actuelles. Étant donné que la copie est figée, tous les sous-objets figés sont copiés par référence.

(Hérité de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Rend l’instance actuelle un clone figé du fichier spécifié Freezable. Si l’objet a des propriétés de dépendance animée, leurs valeurs animées actuelles sont copiées.

(Hérité de Freezable)
GetHashCode()

Obtient un code de hachage pour ce DependencyObject.

(Hérité de DependencyObject)
GetLocalValueEnumerator()

Crée un énumérateur spécialisé pour déterminer quelles propriétés de dépendance ont des valeurs définies localement sur ce DependencyObject.

(Hérité de DependencyObject)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance sur cette instance d’un DependencyObject.

(Hérité de DependencyObject)
InvalidateProperty(DependencyProperty)

Évalue à nouveau la valeur effective de la propriété de dépendance spécifiée.

(Hérité de DependencyObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnChanged()

Appelé lorsque l’objet actuel Freezable est modifié.

(Hérité de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code.

(Hérité de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garantit que les pointeurs de contexte appropriés sont établis pour un DependencyObjectType membre de données qui vient d’être défini.

(Hérité de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Remplace l’implémentation DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) l’appel de tous Changed les gestionnaires en réponse à une propriété de dépendance modifiée de type Freezable.

(Hérité de Freezable)
ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, le cas échéant.

(Hérité de DependencyObject)
ReadPreamble()

Garantit l’accès Freezable à partir d’un thread valide. Les héritiers de Freezable doivent appeler cette méthode au début de toute API qui lit les membres de données qui ne sont pas des propriétés de dépendance.

(Hérité de Freezable)
SetCurrentValue(DependencyProperty, Object)

Définit la valeur d’une propriété de dépendance sans modifier sa source de valeur.

(Hérité de DependencyObject)
SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance, spécifiée par son identificateur de propriété de dépendance.

(Hérité de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Définit la valeur locale d’une propriété de dépendance en lecture seule, spécifiée par l’identificateur DependencyPropertyKey de la propriété de dépendance.

(Hérité de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Retourne une valeur qui indique si les processus de sérialisation doivent sérialiser la valeur de la propriété de dépendance fournie.

(Hérité de DependencyObject)
ToString()

Crée une représentation sous forme de chaîne du Modèle3D.

(Hérité de Model3D)
ToString(IFormatProvider)

Crée une représentation sous forme de chaîne du Modèle3D.

(Hérité de Model3D)
VerifyAccess()

Applique que le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)
WritePostscript()

Déclenche l’événement Changed pour la Freezable méthode et appelle sa OnChanged() méthode. Les classes dérivées Freezable de doivent appeler cette méthode à la fin de toute API qui modifie les membres de classe qui ne sont pas stockés en tant que propriétés de dépendance.

(Hérité de Freezable)
WritePreamble()

Vérifie que l’objet Freezable n’est pas figé et qu’il est accessible à partir d’un contexte de threading valide. Freezable Les hériteurs doivent appeler cette méthode au début de toute API qui écrit dans les membres de données qui ne sont pas des propriétés de dépendance.

(Hérité de Freezable)

Événements

Nom Description
Changed

Se produit lorsque l’objet Freezable qu’il contient est modifié.

(Hérité de Freezable)

Implémentations d’interfaces explicites

Nom Description
IFormattable.ToString(String, IFormatProvider)

Met en forme la valeur de l’instance actuelle à l’aide du format spécifié.

(Hérité de Model3D)

S’applique à