SpotLight Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Lichtobject dat het effect projecteert in een kegelvormig gebied langs een opgegeven richting.
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
- Overname
Voorbeelden
In het volgende voorbeeld ziet u hoe u een SpotLight in een 3D-scène maakt.
<!-- 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>
De volgende code toont het hele voorbeeld.
<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>
Opmerkingen
SpotLight is een soort PointLight, omdat het een positie, bereik en vertenuatie heeft. SpotLight U kunt echter ook de richting, vorm en andere eigenschappen van de kegel van het lichteffect bepalen.
Geef waarden op OuterConeAngle voor (waarboven niets verlicht is) en InnerConeAngle (waarbinnen alles volledig verlicht is) om het spotlighting-effect te wijzigen.
Verlichting tussen de buitenkant van de binnenste kegel en de buitenste kegel valt lineair af.
Constructors
| Name | Description |
|---|---|
| SpotLight() |
Initialiseert een nieuw exemplaar van de SpotLight klasse. |
| SpotLight(Color, Point3D, Vector3D, Double, Double) |
Initialiseert een nieuw exemplaar van de SpotLight klasse met behulp van de opgegeven kleur, positie, richting en kegelhoeken. |
Velden
| Name | Description |
|---|---|
| DirectionProperty |
Identificeert de Direction afhankelijkheidseigenschap. |
| InnerConeAngleProperty |
Identificeert de InnerConeAngle afhankelijkheidseigenschap. |
| OuterConeAngleProperty |
Identificeert de OuterConeAngle afhankelijkheidseigenschap. |
Eigenschappen
| Name | Description |
|---|---|
| Bounds |
Hiermee wordt het Rect3D begrenzingsvak van de Model3Das opgegeven. (Overgenomen van Model3D) |
| CanFreeze |
Hiermee wordt een waarde opgehaald die aangeeft of het object onmodieerbaar kan worden gemaakt. (Overgenomen van Freezable) |
| Color |
Hiermee haalt u de kleur van het licht op of stelt u deze in. (Overgenomen van Light) |
| ConstantAttenuation |
Hiermee wordt een constante waarde opgehaald of ingesteld waarmee de intensiteit van het licht over de afstand afneemt. (Overgenomen van PointLightBase) |
| DependencyObjectType |
Hiermee haalt u het DependencyObjectType CLR-type van dit exemplaar op. (Overgenomen van DependencyObject) |
| Direction |
Hiermee haalt u een op of stelt u een Vector3D die de richting aangeeft waarin de SpotLight projecten licht geven. |
| Dispatcher |
Hiermee wordt de Dispatcher aan dit DispatcherObject gekoppelde bestand. (Overgenomen van DispatcherObject) |
| HasAnimatedProperties |
Hiermee wordt een waarde opgehaald die aangeeft of een of meer AnimationClock objecten zijn gekoppeld aan een van de afhankelijkheidseigenschappen van dit object. (Overgenomen van Animatable) |
| InnerConeAngle |
Hiermee wordt een hoek opgehaald of ingesteld die het aandeel van een SpotLightkegelvormige projectie aangeeft waarin het licht objecten in de scène volledig verlicht. |
| IsFrozen |
Hiermee wordt een waarde opgehaald die aangeeft of het object momenteel kan worden gewijzigd. (Overgenomen van Freezable) |
| IsSealed |
Hiermee wordt een waarde opgehaald die aangeeft of dit exemplaar momenteel is verzegeld (alleen-lezen). (Overgenomen van DependencyObject) |
| LinearAttenuation |
Hiermee wordt een waarde opgehaald of ingesteld die de lineaire deminutie van de intensiteit van het licht over afstand aangeeft. (Overgenomen van PointLightBase) |
| OuterConeAngle |
Hiermee wordt een hoek opgehaald of ingesteld die het aandeel van een SpotLightkegelvormige projectie aangeeft waarbuiten het licht geen objecten in de scène verlicht. |
| Position |
Hiermee haalt of stelt u een Point3D die de positie van het licht in de wereldruimte aangeeft. (Overgenomen van PointLightBase) |
| QuadraticAttenuation |
Hiermee wordt een waarde opgehaald of ingesteld die de diminutie aangeeft van het effect van het licht over afstand, berekend door een kwadratische bewerking. (Overgenomen van PointLightBase) |
| Range |
Hiermee haalt of stelt u de afstand in waarboven het licht geen effect heeft. (Overgenomen van PointLightBase) |
| Transform |
Hiermee haalt u de set op of stelt u deze Transform3D in op het model. (Overgenomen van Model3D) |
Methoden
| Name | Description |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Hiermee wordt een AnimationClock op de opgegeven DependencyPropertywaarde toegepast. Als de eigenschap al is geanimeerd, wordt de opgegeven HandoffBehavior waarde gebruikt. (Overgenomen van Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Hiermee wordt een AnimationClock op de opgegeven DependencyPropertywaarde toegepast. Als de eigenschap al is geanimeerd, wordt het SnapshotAndReplace handoff-gedrag gebruikt. (Overgenomen van Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Hiermee past u een animatie toe op de opgegeven DependencyProperty. De animatie wordt gestart wanneer het volgende frame wordt weergegeven. Als de opgegeven eigenschap al is geanimeerd, wordt de opgegeven HandoffBehavior gebruikt. (Overgenomen van Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Hiermee past u een animatie toe op de opgegeven DependencyProperty. De animatie wordt gestart wanneer het volgende frame wordt weergegeven. Als de opgegeven eigenschap al is geanimeerd, wordt het SnapshotAndReplace handoff-gedrag gebruikt. (Overgenomen van Animatable) |
| CheckAccess() |
Bepaalt of de aanroepende thread toegang heeft tot dit DispatcherObject. (Overgenomen van DispatcherObject) |
| ClearValue(DependencyProperty) |
Hiermee wist u de lokale waarde van een eigenschap. De eigenschap die moet worden gewist, wordt opgegeven door een DependencyProperty id. (Overgenomen van DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Hiermee wist u de lokale waarde van een alleen-lezen eigenschap. De eigenschap die moet worden gewist, wordt opgegeven door een DependencyPropertyKey. (Overgenomen van DependencyObject) |
| Clone() |
Hiermee maakt u een wijzigbare kloon van dit SpotLightobject, waardoor diepe kopieën van de waarden van dit object worden gemaakt. Bij het kopiëren van afhankelijkheidseigenschappen kopieert deze methode bronverwijzingen en gegevensbindingen (maar ze kunnen deze mogelijk niet meer oplossen) maar niet animaties of hun huidige waarden. |
| CloneCore(Freezable) |
Hiermee wordt het exemplaar een kloon (diepe kopie) van de opgegeven Freezable met behulp van basiseigenschapswaarden (niet-geanimeerde waarden). (Overgenomen van Freezable) |
| CloneCurrentValue() |
Hiermee maakt u een wijzigbare kloon van dit SpotLight object, waardoor diepe kopieën worden gemaakt van de huidige waarden van dit object. Resourceverwijzingen, gegevensbindingen en animaties worden niet gekopieerd, maar de huidige waarden zijn. |
| CloneCurrentValueCore(Freezable) |
Maakt het exemplaar een wijzigbare kloon (diepe kopie) van de opgegeven Freezable met behulp van de huidige eigenschapswaarden. (Overgenomen van Freezable) |
| CoerceValue(DependencyProperty) |
Hiermee wordt de waarde van de opgegeven afhankelijkheidseigenschap gecodeerd. Dit wordt bereikt door een CoerceValueCallback functie aan te roepen die is opgegeven in eigenschapsmetagegevens voor de afhankelijkheidseigenschap, zoals deze bestaat bij het aanroepen DependencyObject. (Overgenomen van DependencyObject) |
| CreateInstance() |
Initialiseert een nieuw exemplaar van de Freezable klasse. (Overgenomen van Freezable) |
| CreateInstanceCore() |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, maakt u een nieuw exemplaar van de Freezable afgeleide klasse. (Overgenomen van Freezable) |
| Equals(Object) |
Bepaalt of een opgegeven DependencyObject gelijk is aan de huidige DependencyObject. (Overgenomen van DependencyObject) |
| Freeze() |
Maakt het huidige object onmodifieerbaar en stelt de IsFrozen eigenschap ervan in op |
| FreezeCore(Boolean) |
Animatable Dit object kan niet worden gewijzigd of bepaalt of het kan worden gewijzigd. (Overgenomen van Animatable) |
| GetAnimationBaseValue(DependencyProperty) |
Retourneert de niet-geanimeerde waarde van de opgegeven DependencyProperty. (Overgenomen van Animatable) |
| GetAsFrozen() |
Hiermee maakt u een geblokkeerde kopie van de Freezableeigenschapswaarden met basiswaarden (niet-geanimeerd). Omdat de kopie is geblokkeerd, worden alle geblokkeerde subobjecten gekopieerd met verwijzing. (Overgenomen van Freezable) |
| GetAsFrozenCore(Freezable) |
Hiermee wordt het exemplaar een geblokkeerde kloon van de opgegeven Freezable met behulp van basiseigenschapswaarden (niet-geanimeerd). (Overgenomen van Freezable) |
| GetCurrentValueAsFrozen() |
Hiermee maakt u een geblokkeerde kopie van het Freezable gebruik van de huidige eigenschapswaarden. Omdat de kopie is geblokkeerd, worden alle geblokkeerde subobjecten gekopieerd met verwijzing. (Overgenomen van Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Hiermee wordt het huidige exemplaar een geblokkeerde kloon van de opgegeven Freezable. Als het object eigenschappen van afhankelijkheid met animatie heeft, worden de huidige geanimeerde waarden gekopieerd. (Overgenomen van Freezable) |
| GetHashCode() |
Hiermee haalt u een hashcode op.DependencyObject (Overgenomen van DependencyObject) |
| GetLocalValueEnumerator() |
Hiermee maakt u een gespecialiseerde enumerator om te bepalen welke afhankelijkheidseigenschappen lokaal waarden hebben ingesteld.DependencyObject (Overgenomen van DependencyObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetValue(DependencyProperty) |
Retourneert de huidige effectieve waarde van een afhankelijkheidseigenschap op dit exemplaar van een DependencyObject. (Overgenomen van DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Evalueert de effectieve waarde voor de opgegeven afhankelijkheidseigenschap opnieuw. (Overgenomen van DependencyObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| OnChanged() |
Aangeroepen wanneer het huidige Freezable object wordt gewijzigd. (Overgenomen van Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Dit lid ondersteunt de Windows Presentation Foundation -infrastructuur (WPF) en is niet bedoeld om rechtstreeks vanuit uw code te worden gebruikt. (Overgenomen van Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Zorgt ervoor dat de juiste contextpointers tot stand worden gebracht voor een DependencyObjectType gegevenslid dat zojuist is ingesteld. (Overgenomen van Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Overschrijft de DependencyObject implementatie van het aanroepen OnPropertyChanged(DependencyPropertyChangedEventArgs) van Changed handlers als reactie op een veranderende afhankelijkheidseigenschap van het typeFreezable. (Overgenomen van Freezable) |
| ReadLocalValue(DependencyProperty) |
Retourneert de lokale waarde van een afhankelijkheidseigenschap, als deze bestaat. (Overgenomen van DependencyObject) |
| ReadPreamble() |
Zorgt ervoor dat de Freezable thread wordt geopend vanuit een geldige thread. Overnames van Freezable deze methode moeten aan het begin van een API worden aangeroepen die gegevensleden leest die geen afhankelijkheidseigenschappen zijn. (Overgenomen van Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Hiermee stelt u de waarde van een afhankelijkheidseigenschap in zonder de waardebron te wijzigen. (Overgenomen van DependencyObject) |
| SetValue(DependencyProperty, Object) |
Hiermee stelt u de lokale waarde van een afhankelijkheidseigenschap in, die is opgegeven door de id van de afhankelijkheidseigenschap. (Overgenomen van DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Hiermee stelt u de lokale waarde van een alleen-lezen afhankelijkheidseigenschap in, die is opgegeven door de DependencyPropertyKey id van de afhankelijkheidseigenschap. (Overgenomen van DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Retourneert een waarde die aangeeft of serialisatieprocessen de waarde voor de opgegeven afhankelijkheidseigenschap moeten serialiseren. (Overgenomen van DependencyObject) |
| ToString() |
Hiermee maakt u een tekenreeksweergave van de Model3D. (Overgenomen van Model3D) |
| ToString(IFormatProvider) |
Hiermee maakt u een tekenreeksweergave van de Model3D. (Overgenomen van Model3D) |
| VerifyAccess() |
Hiermee wordt afgedwongen dat de aanroepende thread toegang heeft tot dit DispatcherObject. (Overgenomen van DispatcherObject) |
| WritePostscript() |
Hiermee wordt de gebeurtenis voor de Changed gebeurtenis gegenereerd en wordt Freezable de OnChanged() methode aangeroepen. Klassen die zijn afgeleid van Freezable , moeten deze methode aan het einde van een API aanroepen die klasseleden wijzigt die niet zijn opgeslagen als afhankelijkheidseigenschappen. (Overgenomen van Freezable) |
| WritePreamble() |
Controleert of het Freezable niet is geblokkeerd en of deze wordt geopend vanuit een geldige threadingcontext. Freezable overnemers moeten deze methode aan het begin van een API aanroepen die schrijft naar gegevensleden die geen afhankelijkheidseigenschappen zijn. (Overgenomen van Freezable) |
gebeurtenis
| Name | Description |
|---|---|
| Changed |
Treedt op wanneer het Freezable object dat het bevat, wordt gewijzigd. (Overgenomen van Freezable) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Hiermee wordt de waarde van het huidige exemplaar opgemaakt met behulp van de opgegeven indeling. (Overgenomen van Model3D) |