2009-04-09 9 views
1

私はアプリケーションを開発していますが、私はclientbinフォルダにないが、私のサーバに置かれたフォルダにイメージをロードします。私はこのような何かをするだろう BitmapImageビット=新しいBitmapImage(); 文字列パス= "c:/image.png"; bit.UriSource = new Uri(パス、UriKind.Absolute); identity.Source = bit; しかし機能しません。 おかげイメージをロードxapにありませんSilverlight

答えて

1

試してください:あなたは、プロジェクトや、それを含めたくない

Image.Source =新Imaging.BitmapImage(新しいウリ( "http://www.Pic.jpg"、UriKind.Absolute))

。 xapは巨大になるでしょう。

0

Silverlightアプリケーションはサーバーではなくクライアント上で実行されるため、実行しようとしていたパスを参照すると、実際にはアプリケーションを実行しているクライアントマシン上のパスが示されます。しかし、Silverlightは、賢明な理由から、とにかくクライアントのディスクに対して読み書きする権利を持っていません。分離ストレージ機能は例外です。

したがって、BillまたはWebServiceの最初の答えを試すことができます。これは実装がより複雑です。

ib。

0

ビルの答えに追加します。また、xapファイルの場所から派生した次のヘルパーメソッドを使用して、サーバー側のリソースを使用することもできます。

Image.Source = new Imaging.BitmapImage(new Uri(GetUrlForResource("images/myimage.png"), UriKind.Absolute)); 

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

ビルの答えのようにそれを使用するには、以下を使用します

関連する問題