Проблемы динамической генерации изображения в Silverlight - PullRequest
1 голос
/ 03 мая 2009

Я динамически добавляю изображение к объекту canvas, который некоторое время работал и неожиданно перестал отображаться по какой-то определенной причине.

Вот код:

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);
}

Значения Top и Left находятся в диапазоне размера холста (холст 800 на 600, а координаты - 200, 100). Я могу найти изображения на холсте детей, и URL, кажется, в порядке, я дважды проверил его. Я установил тип сборки PNG для ресурса, но безрезультатно. Если вы заметили, что я добавил ImageOpened даже, который не запускается.

1 Ответ

1 голос
/ 06 мая 2009

Если для типа сборки образа установлено значение «Ресурс», попробуйте удалить начальный символ «/» из URI образа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...