トップ回答者
xamlでのイベントトリガーの指定方法が分かりません

質問
-
またお世話になります。
初心者以下の質問で大変恐縮ですが、どうかご指摘お願いします。
MSのサンプルなどを参考にして、三角形が遠くから全面に近寄るだけのアニメーションを作成しました。このイベントを、ボタンクリック時に発生させたく、画面上にボタンを貼りつけました。
ですが、ボタンクリック時にイベントを発生させる(xaml上のイベントトリガーの発生)方法が分かりません。
検討違いかもしれませんが、88行目
<EventTrigger RoutedEvent="Viewport3D.Loaded">
を
<EventTrigger RoutedEvent="btn1.Click">
に変更すると、「型btn1が見つかりませんでした」というエラーになります。
こういった場合は、xamlではなく、
C#のbtn1_Click()の中に、アニメーションに関する処理を記述するのでしょうか?
どうかご指摘よろしくお願いします。<Window x:Class="WpfApplication2.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="306" Width="330"> <Grid> <Button x:Name="btn1" Margin="29,0,0,35" Height="36" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="72" Click="btn1_Click">クリック</Button> <Viewport3D> <!-- ■カメラの位置や向き等の情報 --> <Viewport3D.Camera> <PerspectiveCamera x:Name="Camera" FieldOfView="150" NearPlaneDistance="0.1" FarPlaneDistance="10" Position="-5,5,5" LookDirection="0,0,-10" UpDirection="0,10,0"/> </Viewport3D.Camera> <!-- FieldOfView="45" ←視野 NearPlaneDistance="0.1" ←描画開始位置 FarPlaneDistance="50" ←描画終了位置 Position="0,0,10" ←カメラの3D座標 LookDirection="0,0,-10" ←カメラの向き UpDirection="0,10,0" ←カメラの上方向のベクトル --> <!-- ■3Dオブジェクト座標データ --> <ModelVisual3D x:Name="object3D"> <ModelVisual3D.Content> <GeometryModel3D> <!-- オブジェクトの情報を設定--> <GeometryModel3D.Geometry> <MeshGeometry3D> <!-- 三角ポリゴンの座標を指定--> <MeshGeometry3D.Positions> <Point3DCollection> -2,1,0 -2,-1,0 2,-1,0 </Point3DCollection> </MeshGeometry3D.Positions> <!-- 色を塗る範囲の指定--> <MeshGeometry3D.TextureCoordinates> <PointCollection> 0,0 0,1 1,2 </PointCollection> </MeshGeometry3D.TextureCoordinates> </MeshGeometry3D> </GeometryModel3D.Geometry> <!-- オブジェクトの色を指定--> <GeometryModel3D.Material> <MaterialGroup> <DiffuseMaterial> <DiffuseMaterial.Brush> <SolidColorBrush Color="#C22CCC"/> </DiffuseMaterial.Brush> </DiffuseMaterial> </MaterialGroup> </GeometryModel3D.Material> <!-- スケールサイズを指定--> <GeometryModel3D.Transform> <ScaleTransform3D x:Name="myTranslateTransform3D" ScaleX="1" ScaleY="1" ScaleZ="1" CenterX="2" CenterY="-6" CenterZ="1" /> </GeometryModel3D.Transform> </GeometryModel3D> </ModelVisual3D.Content> </ModelVisual3D> <!-- ■ライト--> <ModelVisual3D x:Name="Light"> <ModelVisual3D.Content> <DirectionalLight Color="#FFFFFF" Direction="1,-1,-1" /> </ModelVisual3D.Content> </ModelVisual3D> <!-- ■トリガー・ストーリーボードの設定 --> <Viewport3D.Triggers> <EventTrigger RoutedEvent="Viewport3D.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="myTranslateTransform3D" Storyboard.TargetProperty="ScaleX" To="9" AutoReverse="False" RepeatBehavior="Forever" /> <DoubleAnimation Storyboard.TargetName="myTranslateTransform3D" Storyboard.TargetProperty="ScaleY" To="9" AutoReverse="False" RepeatBehavior="Forever" /> <DoubleAnimation Storyboard.TargetName="myTranslateTransform3D" Storyboard.TargetProperty="ScaleZ" To="9" AutoReverse="False" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Viewport3D.Triggers> </Viewport3D> </Grid> </Window>