SpotLight Klasse

Definition

Lichtobjekt, das seine Wirkung in einem kegelförmigen Bereich entlang einer angegebenen Richtung projiziert.

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 sie 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 (innerhalb dessen alles vollständig beleuchtet ist) an, um den Blickpunkteffekt zu ändern.

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

Blickpunktdiagramm (Blickpunktdiagramm)

Konstruktoren

Name Beschreibung
SpotLight()

Initialisiert eine neue Instanz der SpotLight-Klasse.

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

Initialisiert eine neue Instanz der Klasse mithilfe der SpotLight angegebenen Farbe, Position, Richtung und Kegelwinkel.

Felder

Name Beschreibung
DirectionProperty

Identifies the Direction dependency property.

InnerConeAngleProperty

Identifies the InnerConeAngle dependency property.

OuterConeAngleProperty

Identifies the OuterConeAngle dependency property.

Eigenschaften

Name Beschreibung
Bounds

Ruft ein Rect3D , das das achsenbündige Begrenzungsfeld dieses Model3DFelds angibt.

(Geerbt von Model3D)
CanFreeze

Ruft einen Wert ab, der angibt, ob das Objekt unveränderlich gemacht werden kann.

(Geerbt von Freezable)
Color

Ruft die Farbe des Lichts ab oder legt sie fest.

(Geerbt von Light)
ConstantAttenuation

Dient zum Abrufen oder Festlegen eines Konstantenwerts, um den die Intensität des Lichts über den Abstand verringert.

(Geerbt von PointLightBase)
DependencyObjectType

Ruft den DependencyObjectType CLR-Typ dieser Instanz ab.

(Geerbt von DependencyObject)
Direction

Dient zum Abrufen oder Festlegen eines Vector3D Werts, der die Richtung angibt, in der das Licht der SpotLight Projekte angezeigt wird.

Dispatcher

Ruft dies Dispatcher ab, dem dies DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
HasAnimatedProperties

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

(Geerbt von Animatable)
InnerConeAngle

Dient zum Abrufen oder Festlegen eines Winkels, der den Anteil einer SpotLightkegelförmigen Projektion angibt, in der das Licht Objekte in der Szene vollständig beleuchtet.

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 aktuell versiegelt ist (schreibgeschützt).

(Geerbt von DependencyObject)
LinearAttenuation

Dient zum Abrufen oder Festlegen eines Werts, der die lineare Diminution der Intensität des Lichts über den Abstand angibt.

(Geerbt von PointLightBase)
OuterConeAngle

Dient zum Abrufen oder Festlegen eines Winkels, der den Anteil einer SpotLightkegelförmigen Projektion angibt, außerhalb der das Licht keine Objekte in der Szene beleuchtet.

Position

Dient zum Abrufen oder Festlegen eines Point3D Werts, der die Position des Lichts im Weltraum angibt.

(Geerbt von PointLightBase)
QuadraticAttenuation

Dient zum Abrufen oder Festlegen eines Werts, der die Diminution des Lichteffekts über den Abstand angibt, berechnet durch einen quadratischen Vorgang.

(Geerbt von PointLightBase)
Range

Dient zum Abrufen oder Festlegen des Abstands, über den das Licht keine Auswirkung hat.

(Geerbt von PointLightBase)
Transform

Dient zum Abrufen oder Festlegen des Transform3D Satzes für das Modell.

(Geerbt von Model3D)

Methoden

Name Beschreibung
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Wendet eine AnimationClock auf die angegebene DependencyProperty. Wenn die Eigenschaft bereits animiert ist, wird die angegebene HandoffBehavior Eigenschaft verwendet.

(Geerbt von Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Wendet eine AnimationClock auf die angegebene DependencyProperty. Wenn die Eigenschaft bereits animiert ist, wird das SnapshotAndReplace Übergabeverhalten verwendet.

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

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

(Geerbt von Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

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

(Geerbt von Animatable)
CheckAccess()

Bestimmt, ob der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird durch einen DependencyProperty Bezeichner angegeben.

(Geerbt von DependencyObject)
ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird durch eine DependencyPropertyKey.

(Geerbt von DependencyObject)
Clone()

Erstellt einen modifizierbaren Klon dieses SpotLightObjekts, wodurch tiefe Kopien der Werte dieses Objekts erstellt werden. Beim Kopieren von Abhängigkeitseigenschaften kopiert diese Methode Ressourcenverweise und Datenbindungen (aber möglicherweise nicht mehr auflösen), jedoch keine Animationen oder ihre aktuellen Werte.

CloneCore(Freezable)

Macht die Instanz zu einem Klon (deep copy) der angegebenen Freezable Basiseigenschaftswerte (nicht animiert).

(Geerbt von Freezable)
CloneCurrentValue()

Erstellt einen modifizierbaren Klon dieses SpotLight Objekts, wodurch tiefe Kopien der aktuellen Werte dieses Objekts erstellt werden. Ressourcenverweise, Datenbindungen und Animationen werden nicht kopiert, aber ihre aktuellen Werte sind.

CloneCurrentValueCore(Freezable)

Macht die Instanz zu einem modifizierbaren Klon (deep copy) des angegebenen Freezable Werts mit aktuellen Eigenschaftswerten.

(Geerbt von Freezable)
CoerceValue(DependencyProperty)

Wandelt den Wert der angegebenen Abhängigkeitseigenschaft um. Dies wird erreicht, indem alle CoerceValueCallback in Eigenschaftsmetadaten für die Abhängigkeitseigenschaft angegebenen Funktionen aufgerufen werden, wie sie für den Aufruf DependencyObjectvorhanden sind.

(Geerbt von DependencyObject)
CreateInstance()

Initialisiert eine neue Instanz der Freezable-Klasse.

(Geerbt von Freezable)
CreateInstanceCore()

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird eine neue Instanz der Freezable abgeleiteten Klasse erstellt.

(Geerbt von Freezable)
Equals(Object)

Bestimmt, ob ein bereitgestelltes DependencyObject Element dem aktuellen DependencyObjectentspricht.

(Geerbt von DependencyObject)
Freeze()

Macht das aktuelle Objekt unveränderlich und legt seine IsFrozen Eigenschaft auf true.

(Geerbt von Freezable)
FreezeCore(Boolean)

Macht dieses Animatable Objekt unveränderlich oder bestimmt, ob es unveränderlich gemacht werden kann.

(Geerbt von Animatable)
GetAnimationBaseValue(DependencyProperty)

Gibt den nicht animierten Wert des angegebenen DependencyPropertyWerts zurück.

(Geerbt von Animatable)
GetAsFrozen()

Erstellt eine fixierte Kopie der Freezablebasisbasierten (nicht animierten) Eigenschaftswerte. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte per Verweis kopiert.

(Geerbt von Freezable)
GetAsFrozenCore(Freezable)

Macht die Instanz zu einem fixierten Klon der angegebenen Freezable Basiseigenschaft (nicht animierte) Eigenschaftswerte.

(Geerbt von Freezable)
GetCurrentValueAsFrozen()

Erstellt eine fixierte Kopie der Freezable aktuellen Eigenschaftswerte. Da die Kopie fixiert ist, werden alle fixierten Unterobjekte per Verweis kopiert.

(Geerbt von Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Macht die aktuelle Instanz zu einem fixierten Klon des angegebenen Freezable. Wenn das Objekt animierte Abhängigkeitseigenschaften aufweist, werden die aktuellen animierten Werte kopiert.

(Geerbt von Freezable)
GetHashCode()

Ruft einen Hashcode für diese DependencyObjectab.

(Geerbt von DependencyObject)
GetLocalValueEnumerator()

Erstellt einen speziellen Enumerator, um zu bestimmen, welche Abhängigkeitseigenschaften lokal festgelegte Werte für diese DependencyObjectEigenschaft haben.

(Geerbt von DependencyObject)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValue(DependencyProperty)

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

(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 der aktuellen Object.

(Geerbt von Object)
OnChanged()

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

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

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

(Geerbt von Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Stellt sicher, dass geeignete Kontextzeiger für ein DependencyObjectType soeben festgelegtes Datenelement eingerichtet werden.

(Geerbt von Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Setzt die DependencyObject Implementierung OnPropertyChanged(DependencyPropertyChangedEventArgs) außer Kraft, um auch alle Changed Handler als Reaktion auf eine sich ändernde Abhängigkeitseigenschaft vom Typ Freezableaufzurufen.

(Geerbt von Freezable)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, sofern vorhanden.

(Geerbt von DependencyObject)
ReadPreamble()

Stellt sicher, dass der Freezable Zugriff über einen gültigen Thread erfolgt. Erber von Freezable müssen diese Methode am Anfang einer API aufrufen, die Datenmmber liest, die keine Abhängigkeitseigenschaften sind.

(Geerbt von Freezable)
SetCurrentValue(DependencyProperty, Object)

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

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch den Bezeichner der Abhängigkeitseigenschaft angegeben wird.

(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 wird.

(Geerbt von DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert für die bereitgestellte Abhängigkeitseigenschaft serialisieren sollen.

(Geerbt von DependencyObject)
ToString()

Erstellt eine Zeichenfolgendarstellung der Model3D.

(Geerbt von Model3D)
ToString(IFormatProvider)

Erstellt eine Zeichenfolgendarstellung der Model3D.

(Geerbt von Model3D)
VerifyAccess()

Erzwingt, dass der aufrufende Thread Zugriff auf diesen DispatcherObjectThread hat.

(Geerbt von DispatcherObject)
WritePostscript()

Löst das Changed Ereignis für die Freezable Methode aus und ruft es OnChanged() auf. Klassen, die von Freezable dieser Methode abgeleitet werden, sollten am Ende einer API aufgerufen werden, die Klassenmmber ändert, die nicht als Abhängigkeitseigenschaften gespeichert sind.

(Geerbt von Freezable)
WritePreamble()

Überprüft, ob der Freezable Zugriff nicht fixiert ist und über einen gültigen Threadingkontext darauf zugegriffen wird. Freezable Vererbungen sollten diese Methode am Anfang einer API aufrufen, die in Datenmmber schreibt, die keine Abhängigkeitseigenschaften sind.

(Geerbt von Freezable)

Ereignisse

Name Beschreibung
Changed

Tritt auf, wenn das Freezable darin enthaltene Objekt geändert wird.

(Geerbt von Freezable)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mithilfe des angegebenen Formats.

(Geerbt von Model3D)

Gilt für: