locked
Silverlight3のProjection RRS feed

  • 質問

  • Projectionを使って表向きと回転した時の
    裏側では別の画像を表示したいのですが、そのようなサンプルはありますでしょうか。
    2009年9月9日 10:50

すべての返信

  • Projection では裏を向いているときに非表示にするということができないみたいです。
    なので自前で、
      表を向いているときは Visibility を Visible に
      裏を向いているときは Visibility を Collapsed に
    としてやればいいんじゃないかと思います。

    サンプルも探せばいろいろあると思いますが、とりあえず、単純に Y 軸回転でクルクル回る例を以下に貼り付けておきます。

    	<Grid x:Name="LayoutRoot">
    		<Grid.Resources>
    			<Storyboard x:Name="storyboard1" RepeatBehavior="Forever">
    				<DoubleAnimationUsingKeyFrames Storyboard.TargetName="frontPanelProj" Storyboard.TargetProperty="RotationY">
    					<LinearDoubleKeyFrame  KeyTime="00:00:00.0" Value="0" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:00.5" Value="-90" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:01.0" Value="-180" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:01.5" Value="-270" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:02.0" Value="-360" />
    				</DoubleAnimationUsingKeyFrames>
    				<ObjectAnimationUsingKeyFrames Storyboard.TargetName="frontPanel" Storyboard.TargetProperty="Visibility">
    					<DiscreteObjectKeyFrame KeyTime="00:00:00.0">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Visible</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    					<DiscreteObjectKeyFrame KeyTime="00:00:00.5">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Collapsed</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    					<DiscreteObjectKeyFrame KeyTime="00:00:01.5">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Visible</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    				</ObjectAnimationUsingKeyFrames>
    
    				<DoubleAnimationUsingKeyFrames Storyboard.TargetName="backPanelProj" Storyboard.TargetProperty="RotationY">
    					<LinearDoubleKeyFrame  KeyTime="00:00:00.0" Value="-180" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:00.5" Value="-270" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:01.0" Value="-360" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:01.0" Value="0" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:01.5" Value="-90" />
    					<LinearDoubleKeyFrame  KeyTime="00:00:02.0" Value="-180" />
    				</DoubleAnimationUsingKeyFrames>
    				<ObjectAnimationUsingKeyFrames Storyboard.TargetName="backPanel" Storyboard.TargetProperty="Visibility">
    					<DiscreteObjectKeyFrame KeyTime="00:00:00.0">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Collapsed</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    					<DiscreteObjectKeyFrame KeyTime="00:00:00.5">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Visible</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    					<DiscreteObjectKeyFrame KeyTime="00:00:01.5">
    						<DiscreteObjectKeyFrame.Value>
    							<Visibility>Collapsed</Visibility>
    						</DiscreteObjectKeyFrame.Value>
    					</DiscreteObjectKeyFrame>
    				</ObjectAnimationUsingKeyFrames>
    			</Storyboard>
    		</Grid.Resources>
    		<Border x:Name="frontPanel" Width="200" Height="200" BorderThickness="1" BorderBrush="Black" HorizontalAlignment="Center" VerticalAlignment="Center">
    			<Border.Projection>
    				<PlaneProjection x:Name="frontPanelProj"/>
    			</Border.Projection>
    			<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">おもて</TextBlock>			
    		</Border>
    		<Border x:Name="backPanel" Width="200" Height="200" BorderThickness="1" BorderBrush="Black" HorizontalAlignment="Center" VerticalAlignment="Center">
    			<Border.Projection>
    				<PlaneProjection x:Name="backPanelProj"/>
    			</Border.Projection>
    			<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">うら</TextBlock>
    		</Border>
    	</Grid>
    

    青柳 臣一 (Shinichi Aoyagi)
    2009年9月14日 2:06