私は、ウィンドウが縮小されて側面に移動するダブルアニメーションを持っています。私はWindow_Deactivatedイベントでこれを行います。コードは以下の通りです:WINDOW_ACTIVATEDイベントでDoubleanimationは値をリセットしますか?
<Storyboard x:Key="StoryTestScaleDownGrd1">
<DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleX"
From="1" To=".20" Duration="0:0:.25" BeginTime="00:00:00" />
<DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleY"
From="1" To=".20" Duration="0:0:.25" BeginTime="00:00:00" />
<DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetX"
Duration="0:0:.25" BeginTime="00:00:00.25" />
<DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetY"
Duration="0:0:.25" BeginTime="00:00:00.25"/>
</Storyboard>
、私は以下のコードがあります。
<Storyboard x:Key="StoryTestScaleUpGrd1">
<DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleX"
From=".20" To="1" Duration="0:0:.25" BeginTime="00:00:00.75" />
<DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleY"
From=".20" To="1" Duration="0:0:.25" BeginTime="00:00:00.75" />
<DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetX"
Duration="0:0:.25" BeginTime="00:00:00.5" />
<DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetY"
Duration="0:0:.25" BeginTime="00:00:00.5" />
</Storyboard>
マイviewport2dvisual3dは以下の通りです:
<Viewport2DVisual3D.Transform>
<Transform3DGroup>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D x:Name="Win1Angle" Angle="0" Axis="0, 1, 0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
<ScaleTransform3D x:Name="ScaleUp" />
<ScaleTransform3D x:Name="ScaleDown" />
<TranslateTransform3D x:Name="MoveCenter1" OffsetX="0" OffsetY="0" />
</Transform3DGroup>
</Viewport2DVisual3D.Transform>
<!-- The Geometry, Material, and Visual for the Viewport2DVisual3D -->
<Viewport2DVisual3D.Geometry>
<!-- positions of triangle 0 1 2 3 -->
<MeshGeometry3D Positions="-.78,.58,0 -.78,-.58,0 .78,-.58,0 .78,.58,0"
TextureCoordinates="0,0 0,1 1,1 1,0"
TriangleIndices="0 1 2 0 2 3" />
</Viewport2DVisual3D.Geometry>
<Viewport2DVisual3D.Material>
<DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
</Viewport2DVisual3D.Material>
<Grid x:Name="grdHolder1" VerticalAlignment="Center" HorizontalAlignment="Center" ClipToBounds="False" Opacity="1" />
</Viewport2DVisual3D>
行うためのコードアニメーションは以下の通りです:
ウィンドウがアクティブにイベントで
StoryDeActivatedGrd1 = (Storyboard)this.Resources["StoryTestScaleDownGrd1"];
(StoryDeActivatedGrd1.Children[2] as DoubleAnimation).From = 0.0;
(StoryDeActivatedGrd1.Children[2] as DoubleAnimation).To = (double)GV.oCoOrdinate.XValue;
(StoryDeActivatedGrd1.Children[3] as DoubleAnimation).From = 0.0;
(StoryDeActivatedGrd1.Children[3] as DoubleAnimation).To = (double)GV.oCoOrdinate.YValue;
StoryDeActivatedGrd1.Begin();
を無効に、私は次のコードを持っている:
StoryActivatedGrd1 = (Storyboard)this.Resources["StoryTestScaleUpGrd1"];
(StoryActivatedGrd1.Children[2] as DoubleAnimation).To = 0.0;
(StoryActivatedGrd1.Children[3] as DoubleAnimation).To = 0.0;
StoryActivatedGrd1.Begin();
私の問題は、ウィンドウがアクティブ化されたときに私の窓が極端に小さい、ということです。最初のアニメーションの後にウィンドウサイズをリセットする方法はありますか?
は実は、私は、実行時にユーザーコントロールを保持するために2つのグリッドを使用し、私は簡単に作業を最初のグリッドを持っていますが、窓が第二のUserControlに反転したときに、私は上記のような問題を持っている...
こんにちはicebat、あなたの答えをありがとうが、私が必要なのは、ウィンドウがアクティブになると、元のサイズに戻る必要があります。 – sony
@sony、申し訳ありません、私はあなたを誤解しました。それで、アニメーションを1つの[Storyboard](http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard.aspx)に追加することができます。このクラスには、あなたを助けることができる 'Stop'や' Remove'のようないくつかの制御メソッドがあります。 – icebat