Lenguaje

SpotLight Clase

Definición

Objeto claro que proyecta su efecto en un área con forma de cono a lo largo de una dirección especificada.

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
Herencia

Ejemplos

En el ejemplo siguiente se muestra cómo crear un SpotLight en una escena 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>

El código siguiente muestra todo el ejemplo.

<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>

Comentarios

SpotLight es un tipo de PointLight, ya que tiene una posición, un intervalo y una atenuación. Sin embargo, SpotLight también permite controlar la dirección, la forma y otras propiedades del cono del efecto de la luz.

Especifique los valores para OuterConeAngle (más allá de lo que no se ilumina nada) y InnerConeAngle (en el que todo está completamente iluminado) para cambiar el efecto de resaltado.

La iluminación entre el exterior del cono interno y el cono exterior cae linealmente.

Diagrama destacado Diagrama de Contenido destacado Diagrama de Contenido destacado

Constructores

Nombre Description
SpotLight()

Inicializa una nueva instancia de la clase SpotLight.

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

Inicializa una nueva instancia de la SpotLight clase utilizando los ángulos de color, posición, dirección y cono especificados.

Campos

Nombre Description
DirectionProperty

Identifica la Direction propiedad de dependencia.

InnerConeAngleProperty

Identifica la InnerConeAngle propiedad de dependencia.

OuterConeAngleProperty

Identifica la OuterConeAngle propiedad de dependencia.

Propiedades

Nombre Description
Bounds

Obtiene un Rect3D objeto que especifica el rectángulo delimitador alineado con el eje de este Model3Dobjeto .

(Heredado de Model3D)
CanFreeze

Obtiene un valor que indica si el objeto se puede hacer no modificable.

(Heredado de Freezable)
Color

Obtiene o establece el color de la luz.

(Heredado de Light)
ConstantAttenuation

Obtiene o establece un valor constante por el que la intensidad de la luz disminuye a lo largo de la distancia.

(Heredado de PointLightBase)
DependencyObjectType

Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia.

(Heredado de DependencyObject)
Direction

Obtiene o establece un Vector3D objeto que especifica la dirección en la que proyecta SpotLight su luz.

Dispatcher

Obtiene el objeto al que DispatcherDispatcherObject está asociado.

(Heredado de DispatcherObject)
HasAnimatedProperties

Obtiene un valor que indica si uno o varios AnimationClock objetos están asociados a cualquiera de las propiedades de dependencia de este objeto.

(Heredado de Animatable)
InnerConeAngle

Obtiene o establece un ángulo que especifica la proporción de una SpotLightproyección con forma de cono en la que la luz ilumina completamente los objetos de la escena.

IsFrozen

Obtiene un valor que indica si el objeto se puede modificar actualmente.

(Heredado de Freezable)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (solo lectura).

(Heredado de DependencyObject)
LinearAttenuation

Obtiene o establece un valor que especifica la diminución lineal de la intensidad de la luz a lo largo de la distancia.

(Heredado de PointLightBase)
OuterConeAngle

Obtiene o establece un ángulo que especifica la proporción de una SpotLightproyección con forma de cono fuera de la que la luz no ilumina los objetos de la escena.

Position

Obtiene o establece un Point3D objeto que especifica la posición de la luz en el espacio del mundo.

(Heredado de PointLightBase)
QuadraticAttenuation

Obtiene o establece un valor que especifica la diminución del efecto de la luz a lo largo de la distancia, calculado por una operación cuadrática.

(Heredado de PointLightBase)
Range

Obtiene o establece la distancia más allá de la cual la luz no tiene ningún efecto.

(Heredado de PointLightBase)
Transform

Obtiene o establece el Transform3D conjunto en el modelo.

(Heredado de Model3D)

Métodos

Nombre Description
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Aplica un AnimationClock objeto al especificado DependencyProperty. Si la propiedad ya está animada, se usa el especificado HandoffBehavior .

(Heredado de Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Aplica un AnimationClock objeto al especificado DependencyProperty. Si la propiedad ya está animada, se usa el comportamiento de entrega SnapshotAndReplace .

(Heredado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Aplica una animación al especificado DependencyProperty. La animación se inicia cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el especificado HandoffBehavior .

(Heredado de Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Aplica una animación al especificado DependencyProperty. La animación se inicia cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el comportamiento de entrega SnapshotAndReplace .

(Heredado de Animatable)
CheckAccess()

Determina si el subproceso que llama tiene acceso a este DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad. Un identificador especifica DependencyProperty la propiedad que se va a borrar.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante .DependencyPropertyKey

(Heredado de DependencyObject)
Clone()

Crea un clon modificable de este SpotLightobjeto , haciendo copias profundas de los valores de este objeto. Al copiar propiedades de dependencia, este método copia las referencias de recursos y los enlaces de datos (pero es posible que ya no se resuelvan), pero no animaciones ni sus valores actuales.

CloneCore(Freezable)

Convierte la instancia en un clon (copia profunda) del especificado Freezable mediante valores de propiedad base (no animados).

(Heredado de Freezable)
CloneCurrentValue()

Crea un clon modificable de este SpotLight objeto, haciendo copias profundas de los valores actuales de este objeto. Las referencias de recursos, los enlaces de datos y las animaciones no se copian, pero sus valores actuales son.

CloneCurrentValueCore(Freezable)

Convierte la instancia en un clon modificable (copia profunda) del especificado Freezable mediante los valores de propiedad actuales.

(Heredado de Freezable)
CoerceValue(DependencyProperty)

Coerce el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier CoerceValueCallback función especificada en metadatos de propiedad para la propiedad de dependencia tal como existe en la llamada DependencyObjecta .

(Heredado de DependencyObject)
CreateInstance()

Inicializa una nueva instancia de la clase Freezable.

(Heredado de Freezable)
CreateInstanceCore()

Cuando se implementa en una clase derivada, crea una nueva instancia de la Freezable clase derivada.

(Heredado de Freezable)
Equals(Object)

Determina si un proporcionado DependencyObject es equivalente al objeto actual DependencyObject.

(Heredado de DependencyObject)
Freeze()

Hace que el objeto actual no se pueda modificar y establezca su IsFrozen propiedad trueen .

(Heredado de Freezable)
FreezeCore(Boolean)

Hace que este Animatable objeto no se pueda modificar o determina si se puede hacer no modificable.

(Heredado de Animatable)
GetAnimationBaseValue(DependencyProperty)

Devuelve el valor no animado del especificado DependencyProperty.

(Heredado de Animatable)
GetAsFrozen()

Crea una copia inmovilizada de , Freezablemediante valores de propiedad base (no animados). Dado que la copia está inmovilizada, los sub-objetos congelados se copian por referencia.

(Heredado de Freezable)
GetAsFrozenCore(Freezable)

Convierte la instancia en un clon inmovilizado del especificado Freezable mediante valores de propiedad base (no animados).

(Heredado de Freezable)
GetCurrentValueAsFrozen()

Crea una copia inmovilizada de mediante los valores de Freezable propiedad actuales. Dado que la copia está inmovilizada, los sub-objetos congelados se copian por referencia.

(Heredado de Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Convierte la instancia actual en un clon inmovilizado del especificado Freezable. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales.

(Heredado de Freezable)
GetHashCode()

Obtiene un código hash para este DependencyObjectobjeto .

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia tienen valores establecidos localmente en este DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de .DependencyObject

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo de la propiedad de dependencia especificada.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OnChanged()

Se llama cuando se modifica el objeto actual Freezable .

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Este miembro admite la infraestructura de Windows Presentation Foundation (WPF) y no está pensada para usarse directamente desde el código.

(Heredado de Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Garantiza que los punteros de contexto adecuados se establecen para un DependencyObjectType miembro de datos que se acaba de establecer.

(Heredado de Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invalida la DependencyObject implementación de OnPropertyChanged(DependencyPropertyChangedEventArgs) para invocar también los Changed controladores en respuesta a una propiedad de dependencia cambiante de tipo Freezable.

(Heredado de Freezable)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.

(Heredado de DependencyObject)
ReadPreamble()

Garantiza que Freezable se accede a desde un subproceso válido. Los heredadores de Freezable deben llamar a este método al principio de cualquier API que lea miembros de datos que no sean propiedades de dependencia.

(Heredado de Freezable)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar su origen de valor.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificada por el DependencyPropertyKey identificador de la propiedad de dependencia.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada.

(Heredado de DependencyObject)
ToString()

Crea una representación de cadena de Model3D.

(Heredado de Model3D)
ToString(IFormatProvider)

Crea una representación de cadena de Model3D.

(Heredado de Model3D)
VerifyAccess()

Exige que el subproceso de llamada tenga acceso a este DispatcherObject.

(Heredado de DispatcherObject)
WritePostscript()

Genera el Changed evento para e Freezable invoca su OnChanged() método . Las clases que derivan de Freezable deben llamar a este método al final de cualquier API que modifique los miembros de clase que no se almacenan como propiedades de dependencia.

(Heredado de Freezable)
WritePreamble()

Comprueba que Freezable no está inmovilizado y que se accede a él desde un contexto de subproceso válido. Freezable Los heredares deben llamar a este método al principio de cualquier API que escriba en miembros de datos que no sean propiedades de dependencia.

(Heredado de Freezable)

Eventos

Nombre Description
Changed

Se produce cuando se modifica o Freezable un objeto que contiene.

(Heredado de Freezable)

Implementaciones de interfaz explícitas

Nombre Description
IFormattable.ToString(String, IFormatProvider)

Da formato al valor de la instancia actual mediante el formato especificado.

(Heredado de Model3D)

Se aplica a