2017-11-22 11 views
1

私はコーディングに新しくはありません。 WPFではあまり働いていません。ユニティでWPFで画像を動的に生成する方法は?

Example of what I want to achieve

私は経由周り変換位置を移動し、その後、Instantiateメソッドを使用したい:私は何をしようとしていることは、結果はこのようなものを見えるように産卵し、アレイから画像を移動していますC#コード。しかし、私はWPFでこれにどのように取り組むか分かりません。

アイデアをいただければ幸いです。

+0

、あなたは 'Geometry'からレンダリングされ、'キャンバス上で移動することができます 'PATH'(WPFにおける形状)を使用することができます'。それはあなたが始めるために必要なすべてです。もちろん、多くのオブジェクトをレンダリングしてパフォーマンスを向上させるには、 'Shape'を使用せず、' DrawingVisual'に直接描画するべきですが、 'Shape'を使ってオブジェクトを自分で管理するのは難しいと思います。ほとんどの場合。 –

答えて

-1

DoubleAnimationにはStoryBoardを使用できます。

下記のコードをご確認ください。 (厳密にパフォーマンスを必要としない)、この特定のケースのためのWPFで

<Window x:Class="ImageAnimation.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:ImageAnimation" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Storyboard x:Key="Storyboard" BeginTime="00:00:00.000" Duration="00:00:1.000"> 
      <DoubleAnimation Storyboard.TargetName="RotateImage" 
          Storyboard.TargetProperty="(Canvas.Left)" 
          From="50" To="100" BeginTime="00:00:00.000" Duration="00:00:00.200" /> 
      <DoubleAnimation Storyboard.TargetName="RotateImage" 
          Storyboard.TargetProperty="(Canvas.Top)" 
          From="100" To="90" BeginTime="00:00:00.000" Duration="00:00:00.100" /> 
      <DoubleAnimation Storyboard.TargetName="RotateImage" 
          Storyboard.TargetProperty="(Canvas.Top)" 
          From="90" To="100" BeginTime="00:00:00.050" Duration="00:00:00.100" /> 
      <DoubleAnimation Storyboard.TargetName="OpacityImage" 
          Storyboard.TargetProperty="(Canvas.Left)" 
          From="100" To="50" BeginTime="00:00:00.000" Duration="00:00:00.200" /> 
      <DoubleAnimation Storyboard.TargetName="OpacityImage" 
          Storyboard.TargetProperty="(Canvas.Top)" 
          From="100" To="110" BeginTime="00:00:00.000" Duration="00:00:00.100" /> 
      <DoubleAnimation Storyboard.TargetName="OpacityImage" 
          Storyboard.TargetProperty="(Canvas.Top)" 
          From="110" To="100" BeginTime="00:00:00.050" Duration="00:00:00.100" /> 
     </Storyboard> 
    </Window.Resources> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 
     <Canvas Grid.Row="0" Grid.ColumnSpan="2"> 
      <Image x:Name="RotateImage" Stretch="Uniform" Source="1.png" Height="50" Width="50" Canvas.Left="50" Canvas.Top="100"> 

      </Image> 
      <Image x:Name="OpacityImage" Grid.Column="1" Stretch="Uniform" Source="2.png" Height="50" Width="50" Canvas.Left="100" Canvas.Top="100"/> 
     </Canvas> 

     <Button Grid.Row="1" Grid.ColumnSpan="2" Content="Start"> 
      <Button.Triggers> 
       <EventTrigger RoutedEvent="Button.Click"> 
        <BeginStoryboard Storyboard="{StaticResource Storyboard}" /> 
       </EventTrigger> 
      </Button.Triggers> 
     </Button> 
    </Grid> 
</Window> 
+0

投票の理由は何ですか? –

関連する問題