2017-01-30 6 views
0

私はこの問題についていくつかの意見を得ることができます。まず、私は、私が経験しているものに似ているが、運がない、他の質問の回答からの提案を試みたことを説明します。C#/ XAML - 文字列から画像ソースへの変換

目的は文字列を取得し、それをXAMLコード内の画像要素のパスに変換することです。 FacultyMemberが関連BL_PageContent.csファイルからプロパティをである

courseFaculty.Text = BL_PageContent.FacultyMember; 

、私が何をしたいのですが、あなたはコードビハインドこのような何かのファイルにテキストブロックの「テキスト」プロパティを調整することができる方法と同様に同じですが、イメージのパスの文字列を指定します。

あなたがする場合はここで、「プレースホルダ」空白をレンダリング私のイメージのための私のXAMLです:

<Image x:Name="courseFacultyPic" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="246,127,10,0" Height="117" Width="104"></Image> 

テストはこれよりは、「手動で、」私はSourceプロパティとしてソース・パスを入力し、持っていました成功:

string facultyPicPath = "collegeProf1.jpeg"; 
Uri imageUri = new Uri(facultyPicPath); 
BitmapImage facultyImage = new BitmapImage(imageUri); 
Image courseFacultyPic = new Image(); 
courseFacultyPic.Source = facultyImage; 
:私に提案されたものを使用して

<Image x:Name="courseFacultyPic" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="246,127,10,0" Height="117" Width="104" Source="facultyProf1.jpg"></Image> 

は、この「プレースホルダ」に私が意図した画像をレンダリングするべき

上記のコードブロックは、ユーザーがUIコントロールをクリックしたときに開始されます。しかし、私が試してみると、Uriクラスをインスタンス化している行に関する実行時例外が発生します。ランタイム例外は以下の通りである:

タイプの例外「System.UriFormatException」 System.Private.Uri.dllで発生したが、ユーザーコードに 追加情報処理されなかった:無効なURI:のフォーマットをURIを と決定できませんでした。

ご意見・ご提案・ご意見はありがとうございます。これは私の最初の投稿と私の最初の経験は、アプリ内の画像を処理し、独学ですので、考慮に入れてください。どうもありがとう!

+0

あなたはこれを好むかもしれませんhttp://stackoverflow.com/questions/15580855/whats-the-correct-way-to-do-this-image-source-images-binding-path-id- jpg –

+0

あなたはUriコンストラクタを使って 'Uri(string、UriKind)'をオーバーロードし、 'UriKind.Relative'に設定しようとしましたか? – Doom5

+0

今回は別のランタイム例外を試してみましたが、BitmapImageのインスタンシエーションはUriインスタントのすぐ下にあります。> 'System.ArgumentException'型の例外がmscorlib.ni.dllで発生しましたが、ユーザーでは処理されませんでしたコード>追加情報:指定されたSystem.UriをWindows.Foundation.Uriに変換することはできません。 –

答えて

0

これは、XAMLにイメージ名を取得してイメージソースとして設定するコンバーターが組み込まれているためです。新しいBitmapImage(imageUri)を使用する場合は、完全な画像パスを指定する必要があります。

WPFを使用している場合、ImageSourceConverterを使用できますが、これはUWPアプリでは使用できないと思います。私は確信していません...しかし、自分のことを自分自身で書くことは難しいことではありません。

https://msdn.microsoft.com/en-us/library/system.windows.media.imagesourceconverter.convertfromstring(v=vs.110).aspx

0

私が今まであまりにもそのエラーを得ました。解決策は、それがどのような種類のURIであるかを手動で指定する必要があることです。私の経験から、アプリケーションのソースコードファイルと同じディレクトリにあるプロジェクトにイメージを追加したと仮定すると、指定する必要があるURIの種類はUriKind .Relativeです。 Uriコンストラクタで

、このような二番目のパラメータで指定:

Uri imageUri = new Uri(facultyPicPath, UriKind.Relative); 
+0

今回は別のランタイム例外を試してみましたが、私のUriインスタンシエーションのすぐ下にあるBitmapImageのインスタンス化に関しては > > mscorlib.ni.dllで 'System.ArgumentException'タイプの例外が発生しましたが、そうではありませんでしたユーザーコードで処理されました >追加情報:指定されたSystem.UriをWindows.Foundation.Uriに変換することはできません。 –

+0

[this](https://social.msdn.microsoft.com/Forums/en-US/7bab1c6c-0baa-4edf-a3ad-95c3691e2a9a/the-given-systemuri-cannot-be-converted-into -a-windowsfoundationuri?forum = winappswithcsharp)。その人はWindows 8 Storeアプリケーションを開発していますが、おそらくあなたのケースでも動作します。 –

+0

これはチケットです!ありがとう、私の友人..これは私が必要なものを達成した。乾杯! –

関連する問題