2009-04-09 5 views
1

Я разрабатываю приложение, и я бы загрузил изображение, которое не находится в папке clientbin, но в папке, размещенной на моем сервере. Я бы сделал что-то подобное BitmapImage bit = new BitmapImage(); строка path = "c: /image.png"; бит.UriSource = новый Uri (путь, UriKind.Absolute); identity.Source = бит; но он не функционирует. Любая идея? БлагодаряЗагрузить изображение не в xap Silverlight

ответ

1

Try:

Image.Source = Новый Imaging.BitmapImage (New Uri ("http://www.Pic.jpg", UriKind.Absolute))

Вы не хотите, чтобы включить его в свой проект или. xap станет огромным.

0

Приложения Silverlight работают на клиенте, а не на сервере, поэтому ссылка на путь, который вы пытались сделать, действительно указывает на путь на клиентской машине, на которой запущено приложение. Однако Silverlight не имеет права на чтение или запись с диска или на диск клиента в любом случае из-за серьезных причин. Исключением является функциональность изолированного хранилища.

Таким образом, ваш вариант - попробовать первый ответ, данный Биллом или WebService, который сложнее реализовать.

ib.

0

Чтобы добавить ответ Билла. Вы также можете использовать ресурсы на стороне сервера, используя следующий вспомогательный метод, который получается из местоположения файла xap.

public static string GetUrlForResource(string resourcePage) 
{ 

    var webUrl = Application.Current.Host.Source.ToString(); 
    //Get ClientBin Directory 
    var stub = webUrl.Substring(0, webUrl.LastIndexOf("/")); 
    //Get application root. 
    stub = stub.Substring(0, stub.LastIndexOf("/") + 1); 
    //Append the application root to the resource page. 
    webUrl = stub + resourcePage; 

    return webUrl; 
} 

Чтобы использовать его как ответ Билла, используйте следующее:

Image.Source = new Imaging.BitmapImage(new Uri(GetUrlForResource("images/myimage.png"), UriKind.Absolute)); 
Смежные вопросы