次の方法で共有


SpotLight クラス

定義

指定した方向に沿って円錐形の領域に効果を投影する Light オブジェクト。

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

次の例は、3-D シーンで 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>

次のコードは、サンプル全体を示しています。

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

注釈

SpotLight は、位置、範囲、減衰があるため、PointLightの一種です。 ただし、SpotLight では、ライトの効果の円錐の方向、形状、およびその他のプロパティを制御することもできます。

スポットライト効果を変更するには、OuterConeAngle (何も照らされていない値) と InnerConeAngle (すべてが完全に照らされている) の値を指定します。

内側の円錐の外側と外側の円錐の間の照明は直線的に落ちます。

スポットライト図

コンストラクター

SpotLight()

SpotLight クラスの新しいインスタンスを初期化します。

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

指定した色、位置、方向、および円錐角度を使用して、SpotLight クラスの新しいインスタンスを初期化します。

フィールド

DirectionProperty

Direction 依存関係プロパティを識別します。

InnerConeAngleProperty

InnerConeAngle 依存関係プロパティを識別します。

OuterConeAngleProperty

OuterConeAngle 依存関係プロパティを識別します。

プロパティ

Bounds

この Model3Dの軸揃え境界ボックスを指定する Rect3D を取得します。

(継承元 Model3D)
CanFreeze

オブジェクトを変更不可にできるかどうかを示す値を取得します。

(継承元 Freezable)
Color

ライトの色を取得または設定します。

(継承元 Light)
ConstantAttenuation

光の強度が距離を越えて減少する定数値を取得または設定します。

(継承元 PointLightBase)
DependencyObjectType

このインスタンスの CLR 型をラップする DependencyObjectType を取得します。

(継承元 DependencyObject)
Direction

SpotLight がライトを投影する方向を指定する Vector3D を取得または設定します。

Dispatcher

この DispatcherObject が関連付けられている Dispatcher を取得します。

(継承元 DispatcherObject)
HasAnimatedProperties

1 つ以上の AnimationClock オブジェクトがこのオブジェクトの依存関係プロパティのいずれかに関連付けられているかどうかを示す値を取得します。

(継承元 Animatable)
InnerConeAngle

ライトがシーン内のオブジェクトを完全に照らす SpotLightの円錐形の投影の比率を指定する角度を取得または設定します。

IsFrozen

オブジェクトが現在変更可能かどうかを示す値を取得します。

(継承元 Freezable)
IsSealed

このインスタンスが現在シールされているかどうかを示す値を取得します (読み取り専用)。

(継承元 DependencyObject)
LinearAttenuation

距離に対するライトの強度の線形ディミクションを指定する値を取得または設定します。

(継承元 PointLightBase)
OuterConeAngle

ライトがシーン内のオブジェクトを照らさない SpotLightの円錐形の投影の比率を指定する角度を取得または設定します。

Position

ワールド空間におけるライトの位置を指定する Point3D を取得または設定します。

(継承元 PointLightBase)
QuadraticAttenuation

2 次演算によって計算される、距離に対する光の効果のディミクションを指定する値を取得または設定します。

(継承元 PointLightBase)
Range

ライトが効果を持たない距離を取得または設定します。

(継承元 PointLightBase)
Transform

モデルに設定された Transform3D を取得または設定します。

(継承元 Model3D)

メソッド

ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。

(継承元 Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock)

指定した DependencyPropertyAnimationClock を適用します。 プロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。

(継承元 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

指定した DependencyPropertyにアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定したプロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。

(継承元 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

指定した DependencyPropertyにアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定したプロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。

(継承元 Animatable)
CheckAccess()

呼び出し元のスレッドがこの DispatcherObjectにアクセスできるかどうかを判断します。

(継承元 DispatcherObject)
ClearValue(DependencyProperty)

プロパティのローカル値をクリアします。 クリアするプロパティは、DependencyProperty 識別子によって指定されます。

(継承元 DependencyObject)
ClearValue(DependencyPropertyKey)

読み取り専用プロパティのローカル値をクリアします。 クリアするプロパティは、DependencyPropertyKeyで指定します。

(継承元 DependencyObject)
Clone()

この SpotLightの変更可能な複製を作成し、このオブジェクトの値の詳細コピーを作成します。 依存関係プロパティをコピーする場合、このメソッドはリソース参照とデータ バインディングをコピーします (ただし、解決されなくなる可能性があります)、アニメーションやその現在の値はコピーしません。

CloneCore(Freezable)

基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを指定した Freezable の複製 (ディープ コピー) にします。

(継承元 Freezable)
CloneCurrentValue()

この SpotLight オブジェクトの変更可能な複製を作成し、このオブジェクトの現在の値の詳細コピーを作成します。 リソース参照、データ バインディング、およびアニメーションはコピーされませんが、現在の値はコピーされます。

CloneCurrentValueCore(Freezable)

現在のプロパティ値を使用して、インスタンスを指定した Freezable の変更可能な複製 (ディープ コピー) にします。

(継承元 Freezable)
CoerceValue(DependencyProperty)

指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObjectに存在する依存関係プロパティのプロパティ メタデータで指定された CoerceValueCallback 関数を呼び出すことによって実現されます。

(継承元 DependencyObject)
CreateInstance()

Freezable クラスの新しいインスタンスを初期化します。

(継承元 Freezable)
CreateInstanceCore()

派生クラスで実装された場合は、Freezable 派生クラスの新しいインスタンスを作成します。

(継承元 Freezable)
Equals(Object)

指定された DependencyObject が現在の DependencyObjectと等しいかどうかを判断します。

(継承元 DependencyObject)
Freeze()

現在のオブジェクトを変更不可にし、その IsFrozen プロパティを trueに設定します。

(継承元 Freezable)
FreezeCore(Boolean)

この Animatable オブジェクトを変更不可にするか、変更不可にできるかどうかを判断します。

(継承元 Animatable)
GetAnimationBaseValue(DependencyProperty)

指定した DependencyPropertyのアニメーション化されていない値を返します。

(継承元 Animatable)
GetAsFrozen()

基本 (アニメーション化されていない) プロパティ値を使用して、Freezableの固定コピーを作成します。 コピーは固定されているため、固定されたサブオブジェクトは参照によってコピーされます。

(継承元 Freezable)
GetAsFrozenCore(Freezable)

基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを指定した Freezable の固定複製にします。

(継承元 Freezable)
GetCurrentValueAsFrozen()

現在のプロパティ値を使用して、Freezable の固定コピーを作成します。 コピーは固定されているため、固定されたサブオブジェクトは参照によってコピーされます。

(継承元 Freezable)
GetCurrentValueAsFrozenCore(Freezable)

現在のインスタンスを、指定した Freezableの固定複製にします。 オブジェクトにアニメーション化された依存関係プロパティがある場合は、現在のアニメーション化された値がコピーされます。

(継承元 Freezable)
GetHashCode()

この DependencyObjectのハッシュ コードを取得します。

(継承元 DependencyObject)
GetLocalValueEnumerator()

この DependencyObjectでローカルに値が設定されている依存関係プロパティを決定するための特殊な列挙子を作成します。

(継承元 DependencyObject)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetValue(DependencyProperty)

DependencyObjectのこのインスタンスの依存関係プロパティの現在の有効な値を返します。

(継承元 DependencyObject)
InvalidateProperty(DependencyProperty)

指定した依存関係プロパティの有効な値を再評価します。

(継承元 DependencyObject)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
OnChanged()

現在の Freezable オブジェクトが変更されたときに呼び出されます。

(継承元 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

設定したばかりの DependencyObjectType データ メンバーに対して適切なコンテキスト ポインターが確立されていることを確認します。

(継承元 Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

OnPropertyChanged(DependencyPropertyChangedEventArgs)DependencyObject 実装をオーバーライドして、Freezable型の依存関係プロパティの変化に応じて Changed ハンドラーも呼び出します。

(継承元 Freezable)
ReadLocalValue(DependencyProperty)

依存関係プロパティが存在する場合は、そのローカル値を返します。

(継承元 DependencyObject)
ReadPreamble()

Freezable が有効なスレッドからアクセスされていることを確認します。 Freezable の継承子は、依存関係プロパティではないデータ メンバーを読み取る API の先頭でこのメソッドを呼び出す必要があります。

(継承元 Freezable)
SetCurrentValue(DependencyProperty, Object)

値ソースを変更せずに依存関係プロパティの値を設定します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

依存関係プロパティ識別子で指定された依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
SetValue(DependencyPropertyKey, Object)

依存関係プロパティの DependencyPropertyKey 識別子で指定された、読み取り専用の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

シリアル化プロセスが指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。

(継承元 DependencyObject)
ToString()

Model3D の文字列形式を作成します。

(継承元 Model3D)
ToString(IFormatProvider)

Model3D の文字列形式を作成します。

(継承元 Model3D)
VerifyAccess()

呼び出し元のスレッドがこの DispatcherObjectにアクセスすることを強制します。

(継承元 DispatcherObject)
WritePostscript()

FreezableChanged イベントを発生させ、その OnChanged() メソッドを呼び出します。 Freezable から派生するクラスは、依存関係プロパティとして格納されていないクラス メンバーを変更する API の末尾でこのメソッドを呼び出す必要があります。

(継承元 Freezable)
WritePreamble()

Freezable が固定されていないこと、および有効なスレッド コンテキストからアクセスされていることを確認します。 Freezable 継承子は、依存関係プロパティではないデータ メンバーに書き込む API の先頭でこのメソッドを呼び出す必要があります。

(継承元 Freezable)

イベント

Changed

Freezable またはそれに含まれるオブジェクトが変更されたときに発生します。

(継承元 Freezable)

明示的なインターフェイスの実装

IFormattable.ToString(String, IFormatProvider)

指定した形式を使用して、現在のインスタンスの値を書式設定します。

(継承元 Model3D)

適用対象