###前提・実現したいこと
Xamarin.Forms の Page(ContenPageやNavigationPage)のIcon(またはTitleIcon)にPCLプロジェクトのEmbeddedResourceを利用したいと考えています。
これを実現するために、以下のような Extension を書きました。
###string を FileImageSource に変換する Extension
C#
1[ContentProperty("Icon")] 2public class IconExtension : IMarkupExtension 3{ 4 public string Icon { get; set; } 5 6 public object ProvideValue(IServiceProvider serviceProvider) 7 { 8 if (Icon == null) 9 return null; 10 try 11 { 12 var fileImageSource = ImageSource.FromResource(Icon) as FileImageSource; 13 return fileImageSource; 14 } 15 catch (Exception e) 16 { 17 Debug.WriteLine(e.Message); 18 } 19 return null; 20 } 21}
上記ソースコード内で ImageSource を FileImageSource にキャストしていますが、キャスト後に得られる型は StreamImageSource でした。
Icon は FileImageSource なのでこのまま適用はできませんでした。
FileImageSource を取得するために ImageSource#FromFile(string) を使うと、今度は EmbeddedResource を取得できません。
###解決したいこと
StreamImageSource を FileImageSource に変換する方法。
または ImageSource#FromFile で EmbeddedResource を取得する方法。
どうぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/20 13:51
2017/02/20 14:23