SpotLight Klass

Definition

Ljust objekt som projicerar dess effekt i ett konformat område längs en angiven riktning.

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
Arv

Exempel

I följande exempel visas hur du skapar en SpotLight i en 3D-scen.

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

Följande kod visar hela exemplet.

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

Kommentarer

SpotLight är en typ av PointLight, eftersom den har en position, ett intervall och en dämpning. SpotLight Men du kan också styra riktningen, formen och andra egenskaper hos konen i ljusets effekt.

Ange värden för OuterConeAngle (utöver vilka ingenting är belyst) och InnerConeAngle (inom vilka allt är helt belyst) för att ändra spotlight-effekten.

Belysningen mellan utsidan av den inre konen och den yttre konen faller av linjärt.

Spotlight-diagram

Konstruktorer

Name Description
SpotLight()

Initierar en ny instans av SpotLight klassen.

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

Initierar en ny instans av SpotLight klassen med den angivna färgen, positionen, riktningen och konvinklarna.

Fält

Name Description
DirectionProperty

Identifierar beroendeegenskapen Direction .

InnerConeAngleProperty

Identifierar beroendeegenskapen InnerConeAngle .

OuterConeAngleProperty

Identifierar beroendeegenskapen OuterConeAngle .

Egenskaper

Name Description
Bounds

Hämtar en Rect3D som anger den axeljusterade avgränsningsrutan för den här Model3D.

(Ärvd från Model3D)
CanFreeze

Hämtar ett värde som anger om objektet kan göras ommodifierbart.

(Ärvd från Freezable)
Color

Hämtar eller anger ljusets färg.

(Ärvd från Light)
ConstantAttenuation

Hämtar eller anger ett konstant värde med vilket ljusets intensitet minskar över avståndet.

(Ärvd från PointLightBase)
DependencyObjectType

DependencyObjectType Hämtar som omsluter CLR-typen för den här instansen.

(Ärvd från DependencyObject)
Direction

Hämtar eller anger en Vector3D som anger i vilken riktning projektets SpotLight ljus ska visas.

Dispatcher

Hämtar det Dispatcher som DispatcherObject är associerat med.

(Ärvd från DispatcherObject)
HasAnimatedProperties

Hämtar ett värde som anger om ett eller flera AnimationClock objekt är associerade med något av det här objektets beroendeegenskaper.

(Ärvd från Animatable)
InnerConeAngle

Hämtar eller anger en vinkel som anger andelen av en SpotLightkonformad projektion där ljuset helt lyser upp objekt i scenen.

IsFrozen

Hämtar ett värde som anger om objektet för närvarande kan ändras.

(Ärvd från Freezable)
IsSealed

Hämtar ett värde som anger om den här instansen för närvarande är förseglad (skrivskyddad).

(Ärvd från DependencyObject)
LinearAttenuation

Hämtar eller anger ett värde som anger den linjära diminutionen av ljusets intensitet över avståndet.

(Ärvd från PointLightBase)
OuterConeAngle

Hämtar eller anger en vinkel som anger andelen av en SpotLightkonformad projektion utanför vilken ljuset inte lyser upp objekt i scenen.

Position

Hämtar eller ställer in en Point3D som anger ljusets position i världsrymden.

(Ärvd från PointLightBase)
QuadraticAttenuation

Hämtar eller anger ett värde som anger diminutionen av ljusets effekt över avståndet, beräknat av en kvadratisk åtgärd.

(Ärvd från PointLightBase)
Range

Hämtar eller anger avståndet bortom vilket ljuset inte har någon effekt.

(Ärvd från PointLightBase)
Transform

Hämtar eller anger Transform3D uppsättningen för modellen.

(Ärvd från Model3D)

Metoder

Name Description
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Tillämpar en AnimationClock på den angivna DependencyProperty. Om egenskapen redan är animerad används den angivna HandoffBehavior .

(Ärvd från Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

Tillämpar en AnimationClock på den angivna DependencyProperty. Om egenskapen redan är animerad används överlämningsbeteendet SnapshotAndReplace .

(Ärvd från Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Tillämpar en animering på den angivna DependencyProperty. Animeringen startas när nästa bildruta återges. Om den angivna egenskapen redan är animerad används den angivna HandoffBehavior egenskapen.

(Ärvd från Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Tillämpar en animering på den angivna DependencyProperty. Animeringen startas när nästa bildruta återges. Om den angivna egenskapen redan är animerad används överlämningsbeteendet SnapshotAndReplace .

(Ärvd från Animatable)
CheckAccess()

Avgör om den anropande tråden har åtkomst till den här DispatcherObject.

(Ärvd från DispatcherObject)
ClearValue(DependencyProperty)

Rensar det lokala värdet för en egenskap. Egenskapen som ska rensas anges av en DependencyProperty identifierare.

(Ärvd från DependencyObject)
ClearValue(DependencyPropertyKey)

Rensar det lokala värdet för en skrivskyddad egenskap. Egenskapen som ska rensas anges av en DependencyPropertyKey.

(Ärvd från DependencyObject)
Clone()

Skapar en modifierbar klon av detta SpotLightoch gör djupa kopior av objektets värden. När du kopierar beroendeegenskaper kopierar den här metoden resursreferenser och databindningar (men de kanske inte längre matchar) men inte animeringar eller deras aktuella värden.

CloneCore(Freezable)

Gör instansen till en klon (djupkopia) av de angivna Freezable med hjälp av grundläggande (icke-animerade) egenskapsvärden.

(Ärvd från Freezable)
CloneCurrentValue()

Skapar en modifierbar klon av det här SpotLight objektet, vilket gör djupa kopior av objektets aktuella värden. Resursreferenser, databindningar och animeringar kopieras inte, men deras aktuella värden är det.

CloneCurrentValueCore(Freezable)

Gör instansen till en modifierbar klon (djupkopia) av den angivna Freezable med hjälp av aktuella egenskapsvärden.

(Ärvd från Freezable)
CoerceValue(DependencyProperty)

Tvingar fram värdet för den angivna beroendeegenskapen. Detta uppnås genom att anropa alla CoerceValueCallback funktioner som anges i egenskapsmetadata för beroendeegenskapen eftersom den finns på anropet DependencyObject.

(Ärvd från DependencyObject)
CreateInstance()

Initierar en ny instans av Freezable klassen.

(Ärvd från Freezable)
CreateInstanceCore()

När den implementeras i en härledd klass skapar du en ny instans av den Freezable härledda klassen.

(Ärvd från Freezable)
Equals(Object)

Avgör om en angivet DependencyObject motsvarar den aktuella DependencyObject.

(Ärvd från DependencyObject)
Freeze()

Gör det aktuella objektet ommodifierbart och anger dess IsFrozen egenskap till true.

(Ärvd från Freezable)
FreezeCore(Boolean)

Gör det här Animatable objektet ommodifierbart eller avgör om det kan göras ommodifierbart.

(Ärvd från Animatable)
GetAnimationBaseValue(DependencyProperty)

Returnerar det icke-animerade värdet för det angivna DependencyProperty.

(Ärvd från Animatable)
GetAsFrozen()

Skapar en frusen Freezablekopia av , med hjälp av grundläggande (icke-animerade) egenskapsvärden. Eftersom kopian är låst kopieras alla frysta underobjekt som referens.

(Ärvd från Freezable)
GetAsFrozenCore(Freezable)

Gör instansen till en frusen klon av den angivna Freezable med hjälp av grundläggande (icke-animerade) egenskapsvärden.

(Ärvd från Freezable)
GetCurrentValueAsFrozen()

Skapar en frusen Freezable kopia av med aktuella egenskapsvärden. Eftersom kopian är låst kopieras alla frysta underobjekt som referens.

(Ärvd från Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Gör den aktuella instansen till en frusen klon av den angivna Freezable. Om objektet har animerade beroendeegenskaper kopieras deras aktuella animerade värden.

(Ärvd från Freezable)
GetHashCode()

Hämtar en hash-kod för den här DependencyObject.

(Ärvd från DependencyObject)
GetLocalValueEnumerator()

Skapar en specialiserad uppräknare för att avgöra vilka beroendeegenskaper som har lokalt angivna värden för den här DependencyObject.

(Ärvd från DependencyObject)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetValue(DependencyProperty)

Returnerar det aktuella effektiva värdet för en beroendeegenskap för den här instansen av en DependencyObject.

(Ärvd från DependencyObject)
InvalidateProperty(DependencyProperty)

Utvärderar det effektiva värdet för den angivna beroendeegenskapen igen.

(Ärvd från DependencyObject)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnChanged()

Anropas när det aktuella Freezable objektet ändras.

(Ärvd från Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Den här medlemmen stöder infrastrukturen för Windows Presentation Foundation (WPF) och är inte avsedd att användas direkt från koden.

(Ärvd från Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Ser till att lämpliga kontextpekare upprättas för en DependencyObjectType datamedlem som just har angetts.

(Ärvd från Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Åsidosätter implementeringen DependencyObject av OnPropertyChanged(DependencyPropertyChangedEventArgs) för att även anropa alla Changed hanterare som svar på en ändrad beroendeegenskap av typen Freezable.

(Ärvd från Freezable)
ReadLocalValue(DependencyProperty)

Returnerar det lokala värdet för en beroendeegenskap, om den finns.

(Ärvd från DependencyObject)
ReadPreamble()

Säkerställer att åtkomsten Freezable görs från en giltig tråd. Arvtagare Freezable till måste anropa den här metoden i början av ett API som läser datamedlemmar som inte är beroendeegenskaper.

(Ärvd från Freezable)
SetCurrentValue(DependencyProperty, Object)

Anger värdet för en beroendeegenskap utan att ändra dess värdekälla.

(Ärvd från DependencyObject)
SetValue(DependencyProperty, Object)

Anger det lokala värdet för en beroendeegenskap som anges av dess beroendeegenskapsidentifierare.

(Ärvd från DependencyObject)
SetValue(DependencyPropertyKey, Object)

Anger det lokala värdet för en skrivskyddad beroendeegenskap som anges av identifieraren DependencyPropertyKey för beroendeegenskapen.

(Ärvd från DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Returnerar ett värde som anger om serialiseringsprocesser ska serialisera värdet för den angivna beroendeegenskapen.

(Ärvd från DependencyObject)
ToString()

Skapar en strängrepresentation av Model3D.

(Ärvd från Model3D)
ToString(IFormatProvider)

Skapar en strängrepresentation av Model3D.

(Ärvd från Model3D)
VerifyAccess()

Framtvingar att den anropande tråden har åtkomst till den här DispatcherObject.

(Ärvd från DispatcherObject)
WritePostscript()

Genererar Changed händelsen för Freezable och anropar dess OnChanged() metod. Klasser som härleds från Freezable bör anropa den här metoden i slutet av alla API:er som ändrar klassmedlemmar som inte lagras som beroendeegenskaper.

(Ärvd från Freezable)
WritePreamble()

Verifierar att Freezable inte är låst och att den nås från en giltig trådkontext. Freezable ärver bör anropa den här metoden i början av ett API som skriver till datamedlemmar som inte är beroendeegenskaper.

(Ärvd från Freezable)

Händelser

Name Description
Changed

Inträffar när eller Freezable ett objekt som det innehåller ändras.

(Ärvd från Freezable)

Explicita gränssnittsimplementeringar

Name Description
IFormattable.ToString(String, IFormatProvider)

Formaterar värdet för den aktuella instansen med det angivna formatet.

(Ärvd från Model3D)

Gäller för