SpotLight Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
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 |
| 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) |