Teilen über


SpotLight Klasse

Definition

Ein Lichtobjekt, dessen Effekt in einem kegelförmigen Bereich in einer angegebenen Richtung projiziert wird.

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
Vererbung

Beispiele

Das folgende Beispiel zeigt, wie sie eine SpotLight in einer 3D-Szene erstellen.

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

Der folgende Code zeigt das gesamte Beispiel.

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

Hinweise

SpotLight ist eine Art von PointLight, da es eine Position, einen Bereich und eine Dämpfung hat. SpotLight Sie können jedoch auch die Richtung, form und andere Eigenschaften des Kegels des Lichteffekts steuern.

Geben Sie Werte für OuterConeAngle (über die nichts beleuchtet wird) und InnerConeAngle (in denen alles vollständig beleuchtet ist) an, um den Fokuseffekt zu ändern.

Die Beleuchtung zwischen der Außenseite des inneren Kegels und dem äußeren Kegel fällt linear ab.

Spotlight-Diagramm

Konstruktoren

SpotLight()

Initialisiert eine neue Instanz der SpotLight-Klasse.

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

Initialisiert eine neue Instanz der SpotLight-Klasse unter Verwendung der angegebenen Farbe, Position, Richtung und Kegelwinkel.

Felder

DirectionProperty

Bezeichnet die Direction-Abhängigkeitseigenschaft.

InnerConeAngleProperty

Bezeichnet die InnerConeAngle-Abhängigkeitseigenschaft.

OuterConeAngleProperty

Bezeichnet die OuterConeAngle-Abhängigkeitseigenschaft.

Eigenschaften

Bounds

Ruft ein Rect3D ab, das das an einer Achse ausgerichtete umgebende Feld des Model3D angibt.

(Geerbt von Model3D)
CanFreeze

Ruft einen Wert ab, der anzeigt, ob das Objekt als nicht änderbar festgelegt werden kann.

(Geerbt von Freezable)
Color

Ruft die Farbe des Lichts ab oder legt diese fest.

(Geerbt von Light)
ConstantAttenuation

Ruft einen konstanten Wert ab, um den sich die Intensität des Lichts mit der Entfernung verringert, oder legt diesen fest.

(Geerbt von PointLightBase)
DependencyObjectType

Ruft die ab, die DependencyObjectType den CLR-Typ dieser instance umschließt.

(Geerbt von DependencyObject)
Direction

Ruft ein Vector3D ab, das die Richtung angibt, in der das Licht des SpotLight projiziert wird, oder legt dieses fest.

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
HasAnimatedProperties

Ruft einen Wert ab, der angibt, ob einer der Abhängigkeitseigenschaften dieses Objekts ein oder mehrere AnimationClock-Objekte zugeordnet sind.

(Geerbt von Animatable)
InnerConeAngle

Ruft einen Winkel ab, der den Bereich der kegelförmigen Projektion eines SpotLight angibt, in dem Objekte in der Szene vollständig von dem Licht beleuchtet werden, oder legt diesen fest.

IsFrozen

Ruft einen Wert ab, der angibt, ob das Objekt derzeit geändert werden kann.

(Geerbt von Freezable)
IsSealed

Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist.

(Geerbt von DependencyObject)
LinearAttenuation

Ruft einen Wert ab, der die lineare Verringerung der Intensität des Lichts mit der Entfernung angibt, oder legt diesen fest.

(Geerbt von PointLightBase)
OuterConeAngle

Ruft einen Winkel ab, der den Bereich der kegelförmigen Projektion eines SpotLight angibt, außerhalb dessen Objekte in der Szene nicht von dem Licht beleuchtet werden, oder legt diesen fest.

Position

Ruft ein Point3D ab, das die Position des Lichts im Raum der Welt angibt, oder legt dieses fest.

(Geerbt von PointLightBase)
QuadraticAttenuation

Ruft einen Wert ab, der die mit einer quadratischen Operation berechnete Verringerung des Lichteffekts mit der Entfernung angibt, oder legt diesen fest.

(Geerbt von PointLightBase)
Range

Ruft die Entfernung ab, jenseits derer das Licht keine Auswirkungen hat, oder legt diese fest.

(Geerbt von PointLightBase)
Transform

Ruft die für das Modell festgelegte Transform3D ab oder legt sie fest.

(Geerbt von Model3D)

Methoden

ApplyAnimationClock(DependencyProperty, AnimationClock)

Wendet einen AnimationClock auf die angegebene DependencyProperty an. Wenn die Eigenschaft bereits animiert wird, wird das SnapshotAndReplace-Übergabeverhalten verwendet.

(Geerbt von Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Wendet einen AnimationClock auf die angegebene DependencyProperty an. Wenn die Eigenschaft bereits animiert wird, wird das angegebene HandoffBehavior verwendet.

(Geerbt von Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Wendet eine Animation auf die angegebene DependencyProperty an. Die Animation wird gestartet, wenn der nächste Frame gerendert wird. Wenn die angegebene Eigenschaft bereits animiert wird, wird das SnapshotAndReplace-Übergabeverhalten verwendet.

(Geerbt von Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Wendet eine Animation auf die angegebene DependencyProperty an. Die Animation wird gestartet, wenn der nächste Frame gerendert wird. Wenn die angegebene Eigenschaft bereits animiert wird, wird das angegebene HandoffBehavior verwendet.

(Geerbt von Animatable)
CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyProperty-Bezeichner angegeben.

(Geerbt von DependencyObject)
ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyPropertyKey angegeben.

(Geerbt von DependencyObject)
Clone()

Erstellt einen änderbaren Klon dieser SpotLight, indem tiefe Kopien der Werte dieses Objekts erzeugt werden. Beim Kopieren von Abhängigkeitseigenschaften kopiert diese Methode Ressourcenverweise und Datenbindungen (die aber möglicherweise nicht mehr aufgelöst werden können), jedoch keine Animationen oder ihre aktuellen Werte.

CloneCore(Freezable)

Definiert die Instanz als Klon (tiefe Kopie) des angegebenen Freezable-Elements, indem Basiseigenschaftenwerte (nicht animiert) verwendet werden.

(Geerbt von Freezable)
CloneCurrentValue()

Erstellt einen änderbaren Klon des SpotLight-Objekts, indem tiefe Kopien der aktuellen Werte dieses Objekts erzeugt werden. Ressourcenverweise, Datenbindungen und Animationen werden nicht kopiert, ihre aktuellen Werte werden jedoch kopiert.

CloneCurrentValueCore(Freezable)

Macht die Instanz mithilfe aktueller Eigenschaftswerte zu einem Klon (tiefe Kopie) des angegebenen Freezable-Elements, der geändert werden kann.

(Geerbt von Freezable)
CoerceValue(DependencyProperty)

Erzwingt den Wert der angegebenen Abhängigkeitseigenschaft. Dies erfolgt durch den Aufruf einer beliebigen CoerceValueCallback-Funktion, die in den Metadaten für die Abhängigkeitseigenschaft angegeben ist, während sie beim aufrufenden DependencyObject beendet wird.

(Geerbt von DependencyObject)
CreateInstance()

Initialisiert eine neue Instanz der Freezable-Klasse.

(Geerbt von Freezable)
CreateInstanceCore()

Erstellt beim Implementieren in einer abgeleiteten Klasse eine neue Instanz der abgeleiteten Freezable-Klasse.

(Geerbt von Freezable)
Equals(Object)

Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht.

(Geerbt von DependencyObject)
Freeze()

Definiert das aktuelle Objekt als nicht änderbar und legt seine IsFrozen-Eigenschaft auf true fest.

(Geerbt von Freezable)
FreezeCore(Boolean)

Legt dieses Animatable-Objekt als nicht änderbar fest oder bestimmt, ob es als nicht änderbar festgelegt werden kann.

(Geerbt von Animatable)
GetAnimationBaseValue(DependencyProperty)

Gibt den nicht animierten Wert der angegebenen DependencyProperty zurück.

(Geerbt von Animatable)
GetAsFrozen()

Erstellt eine fixierte Kopie von Freezable mit Basiseigenschaftswerten (nicht animiert). Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert.

(Geerbt von Freezable)
GetAsFrozenCore(Freezable)

Definiert die Instanz als fixierten Klon des angegebenen Freezable-Elements, indem Basiseigenschaftenwerte (nicht animiert) verwendet werden.

(Geerbt von Freezable)
GetCurrentValueAsFrozen()

Erstellt eine fixierte Kopie von Freezable mit aktuellen Eigenschaftswerten. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte als Verweis kopiert.

(Geerbt von Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Macht diese aktuelle Instanz zu einem fixierten Klon des angegebenen Freezable-Objekts. Wenn das Objekt über animierte Abhängigkeitseigenschaften verfügt, werden die aktuellen animierten Werte kopiert.

(Geerbt von Freezable)
GetHashCode()

Ruft einen Hashcode für diese DependencyObject ab.

(Geerbt von DependencyObject)
GetLocalValueEnumerator()

Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen.

(Geerbt von DependencyObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft für diese Instanz eines DependencyObject zurück.

(Geerbt von DependencyObject)
InvalidateProperty(DependencyProperty)

Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus.

(Geerbt von DependencyObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnChanged()

Wird aufgerufen, wenn das aktuelle Freezable-Objekt geändert wird.

(Geerbt von Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Stellt sicher, dass entsprechende Kontextzeiger für einen gerade festgelegten DependencyObjectType-Datenmember eingerichtet werden.

(Geerbt von Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Dieses Member unterstützt die WPF-Infrastruktur (Windows Presentation Foundation) und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Überschreibt die DependencyObject-Implementierung von OnPropertyChanged(DependencyPropertyChangedEventArgs), damit in Reaktion auf eine geänderte Abhängigkeitseigenschaft des Typs Freezable auch Changed-Handler aufgerufen werden.

(Geerbt von Freezable)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn dieser vorhanden ist.

(Geerbt von DependencyObject)
ReadPreamble()

Stellt sicher, dass über einen gültigen Thread auf Freezable zugegriffen wird. Vererber von Freezable müssen diese Methode am Anfang jeder API aufrufen, die Datenmember liest, bei denen es sich nicht um Abhängigkeitseigenschaften handelt.

(Geerbt von Freezable)
SetCurrentValue(DependencyProperty, Object)

Legt den Wert einer Abhängigkeitseigenschaft fest, ohne deren Wertquelle zu ändern.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch ihren Bezeichner angegeben ist.

(Geerbt von DependencyObject)
SetValue(DependencyPropertyKey, Object)

Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die durch den DependencyPropertyKey-Bezeichner der Abhängigkeitseigenschaft angegeben ist.

(Geerbt von DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen.

(Geerbt von DependencyObject)
ToString()

Erstellt eine Zeichenfolgendarstellung des Model3D.

(Geerbt von Model3D)
ToString(IFormatProvider)

Erstellt eine Zeichenfolgendarstellung des Model3D.

(Geerbt von Model3D)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
WritePostscript()

Löst das Changed-Ereignis für das Freezable-Objekt aus und ruft dessen OnChanged()-Methode auf. Klassen, die aus Freezable abgeleitet werden, sollten diese Methode am Ende jeder API aufrufen, die Klassenmember ändert, die nicht als Abhängigkeitseigenschaften gespeichert sind.

(Geerbt von Freezable)
WritePreamble()

Stellt sicher, dass das Freezable nicht fixiert ist und dass über einen gültigen Threadkontext darauf zugegriffen wird. Vererber von Freezable sollten diese Methode am Anfang jeder API aufrufen, die Datenmember schreibt, bei denen es sich nicht um Abhängigkeitseigenschaften handelt.

(Geerbt von Freezable)

Ereignisse

Changed

Tritt auf, wenn Freezable oder ein darin enthaltenes Objekt geändert wird.

(Geerbt von Freezable)

Explizite Schnittstellenimplementierungen

IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mit dem angegebenen Format.

(Geerbt von Model3D)

Gilt für: