2009-05-03 18 views
1

しばらくの間働いていたキャンバスオブジェクトに画像を動的に追加していて、何らかの理由で突然表示を停止しました。ここSilverlightで画像を動的に生成する際の問題

コードされる:

public void shootProjectile() 
{ 

    var projectileImage = new Image(); 
    var currChar = (CharactersRef.SCharacterProjectile)lstSubMenu.SelectedItem; 
    projectileImage.Name = currChar.projectileName; 
    Uri imageUri = new Uri("/Images/Projectiles/"+ currChar.projectileName +".png", UriKind.Relative); 

    projectileImage.Height = currChar.projectileHeight; 
    projectileImage.Width=currChar.projectileWidth; 
    var currPuppet = pg.PuppetList.SingleOrDefault(p => p.puppetID == turnID); 
    var projectileY = Convert.ToDouble(pcCombatArea.PhysicsObjects[currPuppet.CharacterName+"torso"].GetValue(Canvas.TopProperty)); 
    var projectileX = Convert.ToDouble(pcCombatArea.PhysicsObjects[currPuppet.CharacterName + "torso"].GetValue(Canvas.LeftProperty)); 

    if (currPuppet.faceRight) 
    { 
     projectileX += currPuppet.elbowToArmpit + currPuppet.elbowToHandTip; 
    } 
    else 
    { 
     projectileX -= currPuppet.elbowToArmpit + currPuppet.elbowToHandTip; 
    }   
    projectileImage.SetValue(Canvas.LeftProperty,projectileX); 
    projectileImage.SetValue(Canvas.TopProperty, projectileY); 
    cnvGame.Children.Add(projectileImage); 
    projectileImage.Source = new BitmapImage(imageUri); 
    projectileImage.ImageOpened += new EventHandler<RoutedEventArgs>(projectileImage_ImageOpened); 
} 

トップと左値(座標100、200円形である一方キャンバス600によって800である)、キャンバスのサイズの範囲で十分です。私はキャンバスの子供たちの画像を見つけることができ、URLは大丈夫と思われる、私はそれをダブルチェックした。私はpngイメージのビルドタイプをリソースに設定しましたが、無駄にしました。私がImageOpenedを追加したことに気づいた場合でも、それはトリガーされていません。

答えて

1

イメージビルドタイプがリソースに設定されている場合は、画像URIから先行する「/」を削除してみてください。

+0

ビルドタイプをコンテンツに変更して動作し、後でリソースを試用します – Drahcir

関連する問題