SpotLight Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Objeto light que projeta seu efeito em uma área em forma de cone ao longo de uma direção especificada.
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
- Herança
Exemplos
O exemplo a seguir mostra como criar uma SpotLight cena 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>
O código a seguir mostra todo o exemplo.
<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>
Comentários
SpotLight é uma espécie de PointLight, uma vez que tem uma posição, intervalo e atenuação. No entanto, SpotLight também permite controlar a direção, a forma e outras propriedades do cone do efeito da luz.
Especifique valores para OuterConeAngle (além dos quais nada é iluminado) e InnerConeAngle (dentro do qual tudo está totalmente iluminado) para alterar o efeito de destaque.
A iluminação entre o lado de fora do cone interno e o cone externo cai linearmente.
Construtores
| Nome | Description |
|---|---|
| SpotLight() |
Inicializa uma nova instância da classe SpotLight. |
| SpotLight(Color, Point3D, Vector3D, Double, Double) |
Inicializa uma nova instância da SpotLight classe usando os ângulos de cor, posição, direção e cone especificados. |
Campos
| Nome | Description |
|---|---|
| DirectionProperty |
Identifica a Direction propriedade de dependência. |
| InnerConeAngleProperty |
Identifica a InnerConeAngle propriedade de dependência. |
| OuterConeAngleProperty |
Identifica a OuterConeAngle propriedade de dependência. |
Propriedades
| Nome | Description |
|---|---|
| Bounds |
Obtém um Rect3D que especifica a caixa delimitadora alinhada ao eixo deste Model3D. (Herdado de Model3D) |
| CanFreeze |
Obtém um valor que indica se o objeto pode ser tornado inmodificável. (Herdado de Freezable) |
| Color |
Obtém ou define a cor da luz. (Herdado de Light) |
| ConstantAttenuation |
Obtém ou define um valor constante pelo qual a intensidade da luz diminui ao longo da distância. (Herdado de PointLightBase) |
| DependencyObjectType |
Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância. (Herdado de DependencyObject) |
| Direction |
Obtém ou define um Vector3D que especifica a direção na qual os SpotLight projetos são iluminados. |
| Dispatcher |
Obtém o Dispatcher que DispatcherObject está associado. (Herdado de DispatcherObject) |
| HasAnimatedProperties |
Obtém um valor que indica se um ou mais AnimationClock objetos estão associados a qualquer uma das propriedades de dependência desse objeto. (Herdado de Animatable) |
| InnerConeAngle |
Obtém ou define um ângulo que especifica a proporção de uma SpotLightprojeção em forma de cone em que a luz ilumina totalmente os objetos na cena. |
| IsFrozen |
Obtém um valor que indica se o objeto é modificável no momento. (Herdado de Freezable) |
| IsSealed |
Obtém um valor que indica se essa instância está lacrada no momento (somente leitura). (Herdado de DependencyObject) |
| LinearAttenuation |
Obtém ou define um valor que especifica a diminuição linear da intensidade da luz à distância. (Herdado de PointLightBase) |
| OuterConeAngle |
Obtém ou define um ângulo que especifica a proporção de uma SpotLightprojeção em forma de cone fora da qual a luz não ilumina objetos na cena. |
| Position |
Obtém ou define um Point3D que especifica a posição da luz no espaço mundial. (Herdado de PointLightBase) |
| QuadraticAttenuation |
Obtém ou define um valor que especifica a diminuição do efeito da luz à distância, calculada por uma operação quadrática. (Herdado de PointLightBase) |
| Range |
Obtém ou define a distância além da qual a luz não tem efeito. (Herdado de PointLightBase) |
| Transform |
Obtém ou define o Transform3D conjunto no modelo. (Herdado de Model3D) |
Métodos
| Nome | Description |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica-se a AnimationClockum DependencyProperty . Se a propriedade já estiver animada, a especificada HandoffBehavior será usada. (Herdado de Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica-se a AnimationClockum DependencyProperty . Se a propriedade já estiver animada, o SnapshotAndReplace comportamento de entrega será usado. (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o próximo quadro é renderizado. Se a propriedade especificada já estiver animada, a especificada HandoffBehavior será usada. (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o próximo quadro é renderizado. Se a propriedade especificada já estiver animada, o SnapshotAndReplace comportamento de entrega será usado. (Herdado de Animatable) |
| CheckAccess() |
Determina se o thread de chamada tem acesso a isso DispatcherObject. (Herdado de DispatcherObject) |
| ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade. A propriedade a ser desmarcada é especificada por um DependencyProperty identificador. (Herdado de DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Limpa o valor local de uma propriedade somente leitura. A propriedade a ser desmarcada é especificada por um DependencyPropertyKey. (Herdado de DependencyObject) |
| Clone() |
Cria um clone modificável disso SpotLight, fazendo cópias profundas dos valores desse objeto. Ao copiar propriedades de dependência, esse método copia referências de recurso e associações de dados (mas elas podem não resolver mais), mas não animações ou seus valores atuais. |
| CloneCore(Freezable) |
Torna a instância um clone (cópia profunda) dos valores de propriedade base (não animados) especificados Freezable . (Herdado de Freezable) |
| CloneCurrentValue() |
Cria um clone modificável desse SpotLight objeto, fazendo cópias profundas dos valores atuais desse objeto. Referências de recursos, associações de dados e animações não são copiadas, mas seus valores atuais são. |
| CloneCurrentValueCore(Freezable) |
Torna a instância um clone modificável (cópia profunda) do especificado Freezable usando valores de propriedade atuais. (Herdado de Freezable) |
| CoerceValue(DependencyProperty) |
Coagi o valor da propriedade de dependência especificada. Isso é feito invocando qualquer CoerceValueCallback função especificada nos metadados de propriedade para a propriedade de dependência como ela existe na chamada DependencyObject. (Herdado de DependencyObject) |
| CreateInstance() |
Inicializa uma nova instância da classe Freezable. (Herdado de Freezable) |
| CreateInstanceCore() |
Quando implementado em uma classe derivada, cria uma nova instância da Freezable classe derivada. (Herdado de Freezable) |
| Equals(Object) |
Determina se um fornecido DependencyObject é equivalente ao atual DependencyObject. (Herdado de DependencyObject) |
| Freeze() |
Torna o objeto atual inmodificável e define sua IsFrozen propriedade como |
| FreezeCore(Boolean) |
Torna esse Animatable objeto inmodificável ou determina se ele pode ser tornado inmodificável. (Herdado de Animatable) |
| GetAnimationBaseValue(DependencyProperty) |
Retorna o valor não animado do especificado DependencyProperty. (Herdado de Animatable) |
| GetAsFrozen() |
Cria uma cópia congelada dos valores de Freezablepropriedade base (não animados). Como a cópia está congelada, todos os sub-objetos congelados são copiados por referência. (Herdado de Freezable) |
| GetAsFrozenCore(Freezable) |
Torna a instância um clone congelado dos valores de propriedade base (não animados) especificados Freezable . (Herdado de Freezable) |
| GetCurrentValueAsFrozen() |
Cria uma cópia congelada do Freezable uso de valores de propriedade atuais. Como a cópia está congelada, todos os sub-objetos congelados são copiados por referência. (Herdado de Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Torna a instância atual um clone congelado do especificado Freezable. Se o objeto tiver propriedades de dependência animadas, seus valores animados atuais serão copiados. (Herdado de Freezable) |
| GetHashCode() |
Obtém um código hash para isso DependencyObject. (Herdado de DependencyObject) |
| GetLocalValueEnumerator() |
Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente.DependencyObject (Herdado de DependencyObject) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência nesta instância de um DependencyObject. (Herdado de DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Reavalia o valor efetivo da propriedade de dependência especificada. (Herdado de DependencyObject) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| OnChanged() |
Chamado quando o objeto atual Freezable é modificado. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Esse membro dá suporte à infraestrutura do WPF (Windows Presentation Foundation) e não se destina a ser usado diretamente do seu código. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Garante que os ponteiros de contexto apropriados sejam estabelecidos para um DependencyObjectType membro de dados que acabou de ser definido. (Herdado de Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Substitui a DependencyObject implementação de OnPropertyChanged(DependencyPropertyChangedEventArgs) invocar também os Changed manipuladores em resposta a uma propriedade de dependência de alteração do tipo Freezable. (Herdado de Freezable) |
| ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se ela existir. (Herdado de DependencyObject) |
| ReadPreamble() |
Garante que ele Freezable esteja sendo acessado de um thread válido. Os herdadores devem Freezable chamar esse método no início de qualquer API que leia os membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Define o valor de uma propriedade de dependência sem alterar sua fonte de valor. (Herdado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência, especificada por seu identificador de propriedade de dependência. (Herdado de DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Define o valor local de uma propriedade de dependência somente leitura, especificada pelo DependencyPropertyKey identificador da propriedade de dependência. (Herdado de DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida. (Herdado de DependencyObject) |
| ToString() |
Cria uma representação de cadeia de caracteres do Model3D. (Herdado de Model3D) |
| ToString(IFormatProvider) |
Cria uma representação de cadeia de caracteres do Model3D. (Herdado de Model3D) |
| VerifyAccess() |
Impõe que o thread de chamada tenha acesso a isso DispatcherObject. (Herdado de DispatcherObject) |
| WritePostscript() |
Aciona o Changed evento para o Freezable método e invoca seu OnChanged() método. Classes das quais derivam Freezable devem chamar esse método no final de qualquer API que modifique os membros da classe que não são armazenados como propriedades de dependência. (Herdado de Freezable) |
| WritePreamble() |
Verifica se o Freezable não está congelado e se ele está sendo acessado de um contexto de threading válido. Freezable os herdadores devem chamar esse método no início de qualquer API que grava em membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
Eventos
| Nome | Description |
|---|---|
| Changed |
Ocorre quando o objeto ou um Freezable objeto que ele contém é modificado. (Herdado de Freezable) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. (Herdado de Model3D) |