2017-01-22 34 views
0

私はC#とプログラミングで、Head First C#の本で勉強しようとすると非常に新しいです。 は再writedコード数回を持っているが、それでもエラーメッセージ取得:引数2: 'string'から 'System.Windows.PropertyPath'に変換できません

エラーCS1503引数2: に「文字列」から変換することはできません「System.Windows.PropertyPath」

でしょうが非常に助け:)あなたはメソッドへの正しい引数の型を提供していない

using System; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Media.Animation; 
namespace Save_The_Humans 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     Random random = new Random(); 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
     private void button_Click(object sender, RoutedEventArgs e) 
     { 
      AddEnemy(); 
     } 
     private void AddEnemy() 
     { 
      ContentControl enemy = new ContentControl(); 
      enemy.Template = Resources["EnemyTemplate"] as ControlTemplate; 
      AnimateEnemy(enemy, 0, playArea.ActualWidth - 100, "(Canvas.Left)"); 
      AnimateEnemy(enemy, random.Next((int)playArea.ActualHeight - 100), 
       random.Next((int)playArea.ActualHeight-100),"(Canvas.Top)"); 
      playArea.Children.Add(enemy); 
     } 
     private void AnimateEnemy(ContentControl enemy, double from, double to, string propertyToAnimate) 
     { 
      Storyboard storyboard = new Storyboard { AutoReverse = true, RepeatBehavior = RepeatBehavior.Forever }; 
      DoubleAnimation animation = new DoubleAnimation() 
      { 
       From = from, 
       To = to, 
       Duration = new Duration(TimeSpan.FromSeconds(random.Next(4, 6))) 
      }; 
      Storyboard.SetTarget(animation, enemy); 
      Storyboard.SetTargetProperty(animation, propertyToAnimate);//THIS IS A PROBLEMATIC LINE, the "propertyToAnimate" is underlined. 
      storyboard.Children.Add(animation); 
      storyboard.Begin(); 
     } 
    } 
    } 

答えて

3

のために理解される:あなたはタイプのオブジェクトを提供している間に、第2のパラメータは、タイプPropertyPathであります。

ソリューションがするのと同じくらい簡単です:

Storyboard.SetTargetProperty(animation, new PropertyPath(propertyToAnimate)); 

出典:MSDN

+0

ありがとう、@ user3185569!これは解決されたように見えますが、メッセージを受け取っています。 Storyboard.SetTargetProperty(アニメーション、新しいPropertyPath( "propertyToAnimate"));それから走ろうとする。いくつかの提案?どうもありがとう! – Slava

+0

@Slava二重引用符のない新しいPropertyPath(propertyToAnimate)である必要があります。 – user3185569

0

変更するには、このようなコードと2番目の引数がのPropertyPath型ではない文字列

あるので

Storyboard.SetTargetProperty(animation,new PropertyPath(propertyToAnimate)); 

を試してみてください

+0

ありがとう、@Sreemat!解決されたように見えますが、メッセージStoryboard.SetTargetProperty(アニメーション、新しいPropertyPath( "propertyToAnimate"))が表示されます。それから走ろうとする。いくつかの提案?どうもありがとう! - – Slava

+0

@Slava – Sreemat

+0

を理解できませんスクリーンショットを確認してください:http://i67.tinypic.com/2ikxeti.png – Slava

関連する問題