Sdílet prostřednictvím


SpotLight Třída

Definice

Světlý objekt, který promítá svůj efekt do oblasti ve tvaru kužele podél zadaného směru.

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
Dědičnost

Příklady

Následující příklad ukazuje, jak vytvořit prostorovou scénu SpotLight .

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

Následující kód ukazuje celou ukázku.

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

Poznámky

SpotLight je druh PointLight, protože má pozici, rozsah a útlum. SpotLight Umožňuje ale také řídit směr, tvar a další vlastnosti kužele efektu světla.

Pokud chcete změnit efekt zvýraznění, zadejte hodnoty pro OuterConeAngle (za kterými se nic nesvítí) a InnerConeAngle (v rámci kterých je všechno plně osvětlené).

Osvětlení mezi vnějším kuželem a vnějším kuželem lineárně klesá.

Spotlight diagram

Konstruktory

SpotLight()

Inicializuje novou instanci SpotLight třídy .

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

Inicializuje novou instanci SpotLight třídy pomocí zadané barvy, pozice, směru a kuželových úhlů.

Pole

DirectionProperty

Identifikuje Direction vlastnost závislosti.

InnerConeAngleProperty

Identifikuje InnerConeAngle vlastnost závislosti.

OuterConeAngleProperty

Identifikuje OuterConeAngle vlastnost závislosti.

Vlastnosti

Bounds

Rect3D Získá, který určuje ohraničující rámeček zarovnaný osou tohoto Model3Dobjektu .

(Zděděno od Model3D)
CanFreeze

Získá hodnotu, která označuje, zda objekt lze změnit.

(Zděděno od Freezable)
Color

Získá nebo nastaví barvu světla.

(Zděděno od Light)
ConstantAttenuation

Získá nebo nastaví konstantní hodnotu, podle které intenzita světla klesá na vzdálenost.

(Zděděno od PointLightBase)
DependencyObjectType

Získá, DependencyObjectType který zabalí typ CLR této instance.

(Zděděno od DependencyObject)
Direction

Získá nebo nastaví , Vector3D který určuje směr, ve kterém projektuje SpotLight své světlo.

Dispatcher

Získá to DispatcherDispatcherObject je přidružena k.

(Zděděno od DispatcherObject)
HasAnimatedProperties

Získá hodnotu, která označuje, zda jeden nebo více AnimationClock objektů je přidružena k některému z vlastností závislostí tohoto objektu.

(Zděděno od Animatable)
InnerConeAngle

Získá nebo nastaví úhel, který určuje podíl SpotLightkuželovité projekce, ve které světlo plně osvětluje objekty ve scéně.

IsFrozen

Získá hodnotu, která označuje, zda je objekt aktuálně upravitelný.

(Zděděno od Freezable)
IsSealed

Získá hodnotu, která označuje, zda je tato instance právě zapečetěna (jen pro čtení).

(Zděděno od DependencyObject)
LinearAttenuation

Získá nebo nastaví hodnotu, která určuje lineární zmenšení intenzity světla na vzdálenost.

(Zděděno od PointLightBase)
OuterConeAngle

Získá nebo nastaví úhel, který určuje podíl SpotLightkuželovité projekce, mimo kterou světlo neosvítí objekty ve scéně.

Position

Získá nebo nastaví , Point3D který určuje pozici světla ve světovém prostoru.

(Zděděno od PointLightBase)
QuadraticAttenuation

Získá nebo nastaví hodnotu, která určuje zmenšení efektu světla na vzdálenost, vypočtené kvadratickou operací.

(Zděděno od PointLightBase)
Range

Získá nebo nastaví vzdálenost, nad kterou světlo nemá žádný vliv.

(Zděděno od PointLightBase)
Transform

Získá nebo nastaví Transform3D sadu v modelu.

(Zděděno od Model3D)

Metody

ApplyAnimationClock(DependencyProperty, AnimationClock)

Použije na AnimationClock zadanou DependencyPropertyhodnotu . Pokud je vlastnost už animovaná, SnapshotAndReplace použije se chování předání.

(Zděděno od Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Použije na AnimationClock zadanou DependencyPropertyhodnotu . Pokud je vlastnost už animovaná, použije se zadaná HandoffBehavior vlastnost.

(Zděděno od Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Použije animaci na zadaný objekt DependencyProperty. Animace se spustí při vykreslení dalšího snímku. Pokud je zadaná vlastnost již animované, SnapshotAndReplace použije se chování předání.

(Zděděno od Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Použije animaci na zadaný objekt DependencyProperty. Animace se spustí při vykreslení dalšího snímku. Pokud je zadaná vlastnost již animovaná, použije se zadaná HandoffBehavior vlastnost.

(Zděděno od Animatable)
CheckAccess()

Určuje, zda volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
ClearValue(DependencyProperty)

Vymaže místní hodnotu vlastnosti. Vlastnost, která má být vymazána, je určena identifikátorem DependencyProperty .

(Zděděno od DependencyObject)
ClearValue(DependencyPropertyKey)

Vymaže místní hodnotu vlastnosti jen pro čtení. Vlastnost, která se má vymazat, je určena parametrem DependencyPropertyKey.

(Zděděno od DependencyObject)
Clone()

Vytvoří upravitelný klon tohoto SpotLightobjektu a vytvoří hluboké kopie hodnot tohoto objektu. Při kopírování vlastností závislostí tato metoda kopíruje odkazy na prostředky a datové vazby (ale nemusí se už překládat), ale ne animace nebo jejich aktuální hodnoty.

CloneCore(Freezable)

Vytvoří instanci klon (hloubkovou kopii) zadaného Freezable pomocí základních (ne animovaných) hodnot vlastností.

(Zděděno od Freezable)
CloneCurrentValue()

Vytvoří upravitelný klon tohoto SpotLight objektu a vytvoří hluboké kopie aktuálních hodnot tohoto objektu. Odkazy na prostředky, datové vazby a animace se nekopírují, ale jejich aktuální hodnoty ano.

CloneCurrentValueCore(Freezable)

Vytvoří instanci upravitelný klon (hloubkovou kopii) zadaného Freezable pomocí aktuálních hodnot vlastností.

(Zděděno od Freezable)
CoerceValue(DependencyProperty)

Převede hodnotu zadané vlastnosti závislosti. Toho se dosáhne vyvoláním jakékoli CoerceValueCallback funkce zadané v metadatech vlastnosti závislosti, protože existuje ve volajícím DependencyObjectobjektu .

(Zděděno od DependencyObject)
CreateInstance()

Inicializuje novou instanci Freezable třídy .

(Zděděno od Freezable)
CreateInstanceCore()

Při implementaci v odvozené třídě vytvoří novou instanci odvozené Freezable třídy.

(Zděděno od Freezable)
Equals(Object)

Určuje, zda zadaný DependencyObject je ekvivalentní k aktuálnímu DependencyObject.

(Zděděno od DependencyObject)
Freeze()

Nastaví aktuální objekt jako neupravitelný a nastaví jeho IsFrozen vlastnost na true.

(Zděděno od Freezable)
FreezeCore(Boolean)

Nastaví tento Animatable objekt jako neupravitelný nebo určuje, zda jej lze změnit jako neupravitelný.

(Zděděno od Animatable)
GetAnimationBaseValue(DependencyProperty)

Vrátí ne animovanou hodnotu zadané DependencyPropertyhodnoty .

(Zděděno od Animatable)
GetAsFrozen()

Vytvoří zamrzlou kopii objektu Freezables použitím základních (ne animovaných) hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, jsou všechny ukotvené dílčí objekty zkopírovány odkazem.

(Zděděno od Freezable)
GetAsFrozenCore(Freezable)

Vytvoří instanci zamrznutý klon zadaného Freezable pomocí základních (ne animovaných) hodnot vlastností.

(Zděděno od Freezable)
GetCurrentValueAsFrozen()

Vytvoří zamrzlou kopii objektu Freezable s použitím aktuálních hodnot vlastností. Vzhledem k tomu, že kopie je zamrzlá, jsou všechny ukotvené dílčí objekty zkopírovány odkazem.

(Zděděno od Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Vytvoří aktuální instanci zablokovaného klonu zadaného Freezableobjektu . Pokud má objekt animované vlastnosti závislostí, zkopírují se jeho aktuální animované hodnoty.

(Zděděno od Freezable)
GetHashCode()

Získá hash kód pro tento DependencyObject.

(Zděděno od DependencyObject)
GetLocalValueEnumerator()

Vytvoří specializovaný enumerátor pro určení vlastností závislostí, které mají místně nastavené hodnoty v tomto DependencyObjectobjektu .

(Zděděno od DependencyObject)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
GetValue(DependencyProperty)

Vrátí aktuální efektivní hodnotu vlastnosti závislosti na této instanci objektu DependencyObject.

(Zděděno od DependencyObject)
InvalidateProperty(DependencyProperty)

Znovu vyhodnotí efektivní hodnotu pro zadanou vlastnost závislosti.

(Zděděno od DependencyObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnChanged()

Volána při změně aktuálního Freezable objektu.

(Zděděno od Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Zajišťuje, že jsou vytvořeny vhodné ukazatele kontextu pro DependencyObjectType datový člen, který byl právě nastaven.

(Zděděno od Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určen k použití přímo z vašeho kódu.

(Zděděno od Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Přepíše implementaci DependencyObject tak, OnPropertyChanged(DependencyPropertyChangedEventArgs) aby také vyvolala všechny Changed obslužné rutiny v reakci na měnící se vlastnost závislosti typu Freezable.

(Zděděno od Freezable)
ReadLocalValue(DependencyProperty)

Vrátí místní hodnotu vlastnosti závislosti, pokud existuje.

(Zděděno od DependencyObject)
ReadPreamble()

Zajišťuje, že Freezable se k souboru přistupuje z platného vlákna. Dědíci Freezable musí tuto metodu volat na začátku jakéhokoli rozhraní API, které čte datové členy, které nejsou vlastnosti závislostí.

(Zděděno od Freezable)
SetCurrentValue(DependencyProperty, Object)

Nastaví hodnotu vlastnosti závislosti beze změny jejího zdroje hodnoty.

(Zděděno od DependencyObject)
SetValue(DependencyProperty, Object)

Nastaví místní hodnotu vlastnosti závislosti určenou identifikátorem vlastnosti závislosti.

(Zděděno od DependencyObject)
SetValue(DependencyPropertyKey, Object)

Nastaví místní hodnotu vlastnosti závislosti jen pro čtení určenou DependencyPropertyKey identifikátorem vlastnosti závislosti.

(Zděděno od DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Vrátí hodnotu, která označuje, zda serializační procesy mají serializovat hodnotu pro zadanou vlastnost závislosti.

(Zděděno od DependencyObject)
ToString()

Vytvoří řetězcovou reprezentaci Model3D.

(Zděděno od Model3D)
ToString(IFormatProvider)

Vytvoří řetězcovou reprezentaci Model3D.

(Zděděno od Model3D)
VerifyAccess()

Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)
WritePostscript()

Changed Vyvolá událost pro Freezable a vyvolá jeho OnChanged() metodu. Třídy odvozené z Freezable by měly tuto metodu volat na konci jakéhokoli rozhraní API, které upravuje členy třídy, které nejsou uloženy jako vlastnosti závislosti.

(Zděděno od Freezable)
WritePreamble()

Ověřuje, že Freezable objekt není zamrznutý a že se k němu přistupuje z platného kontextu podprocesů. Freezable Dědiče by tuto metodu měli volat na začátku jakéhokoli rozhraní API, které zapisuje do datových členů, které nejsou vlastnosti závislostí.

(Zděděno od Freezable)

Událost

Changed

Vyvolá se při změně objektu Freezable nebo objektu, který obsahuje.

(Zděděno od Freezable)

Explicitní implementace rozhraní

IFormattable.ToString(String, IFormatProvider)

Formátuje hodnotu aktuální instance pomocí zadaného formátu.

(Zděděno od Model3D)

Platí pro