SpotLight Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Oggetto luce che proietta il relativo effetto su un'area a forma di cono lungo una direzione specificata.
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
- Ereditarietà
Esempio
Nell'esempio seguente viene illustrato come creare un oggetto SpotLight in una scena 3D.
<!-- 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>
Il codice seguente mostra l'intero esempio.
<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>
Commenti
SpotLight è un tipo di PointLight, poiché ha una posizione, un intervallo e un'attenuazione. Tuttavia, SpotLight consente anche di controllare la direzione, la forma e altre proprietà del cono dell'effetto della luce.
Specificare i valori per OuterConeAngle (oltre il quale nulla è illuminato) e InnerConeAngle (all'interno del quale tutto è completamente illuminato) per modificare l'effetto spotlighting.
L'illuminazione tra l'esterno del cono interno e il cono esterno cade linearmente.
Costruttori
SpotLight() |
Inizializza una nuova istanza della classe SpotLight. |
SpotLight(Color, Point3D, Vector3D, Double, Double) |
Inizializza una nuova istanza della classe SpotLight utilizzando il colore, la posizione, la direzione e gli angoli del cono specificati. |
Campi
DirectionProperty |
Identifica la proprietà di dipendenza Direction. |
InnerConeAngleProperty |
Identifica la proprietà di dipendenza InnerConeAngle. |
OuterConeAngleProperty |
Identifica la proprietà di dipendenza OuterConeAngle. |
Proprietà
Bounds |
Ottiene una struttura Rect3D che specifica il riquadro delimitatore del testo allineato all'asse, relativo all'oggetto Model3D corrente. (Ereditato da Model3D) |
CanFreeze |
Ottiene un valore che indica se l'oggetto può essere impostato come non modificabile. (Ereditato da Freezable) |
Color |
Ottiene o imposta il colore della luce. (Ereditato da Light) |
ConstantAttenuation |
Ottiene o imposta un valore costante in base al quale l'intensità della luce diminuisce sulla distanza. (Ereditato da PointLightBase) |
DependencyObjectType |
Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza. (Ereditato da DependencyObject) |
Direction |
Ottiene o imposta una struttura Vector3D che specifica la direzione in cui l'oggetto SpotLight proietta la luce. |
Dispatcher |
Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject) |
HasAnimatedProperties |
Ottiene un valore che indica se uno o più oggetti AnimationClock sono associati a una qualsiasi delle proprietà di dipendenza di questo oggetto. (Ereditato da Animatable) |
InnerConeAngle |
Ottiene o imposta un angolo che specifica le proporzioni della proiezione conica di un oggetto SpotLight all'interno della quale la luce illumina completamente gli oggetti presenti nella scena. |
IsFrozen |
Ottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable) |
IsSealed |
Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject) |
LinearAttenuation |
Ottiene o imposta un valore che specifica la diminuzione lineare dell'intensità della luce sulla distanza. (Ereditato da PointLightBase) |
OuterConeAngle |
Ottiene o imposta un angolo che specifica le proporzioni della proiezione conica di un oggetto SpotLight all'esterno della quale la luce non illumina gli oggetti presenti nella scena. |
Position |
Ottiene o imposta un oggetto Point3D che specifica la posizione della luce nello spazio globale. (Ereditato da PointLightBase) |
QuadraticAttenuation |
Ottiene o imposta un valore che specifica la diminuzione dell'effetto della luce sulla distanza, calcolato mediante un'operazione quadratica. (Ereditato da PointLightBase) |
Range |
Ottiene o imposta la distanza oltre la quale la luce non ha effetto. (Ereditato da PointLightBase) |
Transform |
Ottiene o imposta l'oggetto Transform3D impostato nel modello. (Ereditato da Model3D) |
Metodi
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se la proprietà è già animata, viene usato il comportamento di continuità di SnapshotAndReplace. (Ereditato da Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se alla proprietà è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se alla proprietà specificata è già applicata un'animazione, viene usato il comportamento di continuità di SnapshotAndReplace. (Ereditato da Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando viene eseguito il rendering del fotogramma successivo. Se alla proprietà specificata è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable) |
CheckAccess() |
Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject) |
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà. La proprietà da cancellare è specificata da un identificatore DependencyProperty. (Ereditato da DependencyObject) |
ClearValue(DependencyPropertyKey) |
Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject) |
Clone() |
Crea un clone modificabile di questo oggetto SpotLight, eseguendo copie complete dei valori dell'oggetto. Durante la copia delle proprietà di dipendenza, questo metodo copia i riferimenti alle risorse e i data binding (che potrebbero non essere più risolti), ma non le animazioni né i relativi valori correnti. |
CloneCore(Freezable) |
Rende l'istanza un clone (copia completa) dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). (Ereditato da Freezable) |
CloneCurrentValue() |
Crea un clone modificabile dell'oggetto SpotLight, eseguendo copie complete dei valori correnti di tale oggetto. I riferimenti alle risorse, i data binding e le animazioni non vengono copiati, ma vengono copiati i relativi valori correnti. |
CloneCurrentValueCore(Freezable) |
Rende l'istanza un clone (copia completa) modificabile dell'oggetto Freezable specificato usando i valori di proprietà correnti. (Ereditato da Freezable) |
CoerceValue(DependencyProperty) |
Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject) |
CreateInstance() |
Inizializza una nuova istanza della classe Freezable. (Ereditato da Freezable) |
CreateInstanceCore() |
Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable. (Ereditato da Freezable) |
Equals(Object) |
Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject) |
Freeze() |
Rende non modificabile l'oggetto corrente e ne imposta la proprietà IsFrozen su |
FreezeCore(Boolean) |
Rende immodificabile questo oggetto Animatable o determina se l'oggetto può essere reso immodificabile. (Ereditato da Animatable) |
GetAnimationBaseValue(DependencyProperty) |
Restituisce il valore non animato dell'oggetto DependencyProperty specificato. (Ereditato da Animatable) |
GetAsFrozen() |
Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetAsFrozenCore(Freezable) |
Rende l'istanza un clone bloccato dell'oggetto Freezable specificato usando i valori di proprietà di base (non animati). (Ereditato da Freezable) |
GetCurrentValueAsFrozen() |
Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Rende l'istanza corrente un clone bloccato dell'oggetto Freezable specificato. Se l'oggetto ha proprietà di dipendenza animate, i valori animati correnti vengono copiati. (Ereditato da Freezable) |
GetHashCode() |
Ottiene un codice hash per l'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetLocalValueEnumerator() |
Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetValue(DependencyProperty) |
Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject) |
InvalidateProperty(DependencyProperty) |
Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnChanged() |
Chiamato quando viene modificato l'oggetto Freezable corrente. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. (Ereditato da Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non deve essere usata direttamente dal codice. (Ereditato da Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Esegue l'override dell'implementazione di DependencyObject di OnPropertyChanged(DependencyPropertyChangedEventArgs) per richiamare anche eventuali gestori Changed in risposta alla modifica di una proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject) |
ReadPreamble() |
Assicura che l’accesso di Freezable sia stato eseguito da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza. (Ereditato da DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza. (Ereditato da DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata. (Ereditato da DependencyObject) |
ToString() |
Crea una rappresentazione di stringa dell'oggetto Model3D. (Ereditato da Model3D) |
ToString(IFormatProvider) |
Crea una rappresentazione di stringa dell'oggetto Model3D. (Ereditato da Model3D) |
VerifyAccess() |
Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject) |
WritePostscript() |
Genera l'evento Changed per Freezable e richiama il metodo OnChanged(). Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri di classe che non sono archiviati come proprietà di dipendenza. (Ereditato da Freezable) |
WritePreamble() |
Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable) |
Eventi
Changed |
Si verifica quando Freezable o un oggetto che contiene è modificato. (Ereditato da Freezable) |
Implementazioni dell'interfaccia esplicita
IFormattable.ToString(String, IFormatProvider) |
Formatta il valore dell'istanza corrente usando il formato specificato. (Ereditato da Model3D) |