0

私の xamarin.forms アプリでは、ビューに画像を配置しようとしています。すべてが適切に配置され、Android エミュレーター、iOS iPad デバイス、および WinPhone エミュレーターで表示されます。ただし、イメージは「ローカル」Win10 マシンにも、エミュレーター/シミュレーターにも表示されません。これは私が使用するコードです:

ビューモデル:

    using Prism.Mvvm;

    namespace DemoJan017.ViewModels.ViewModels
    {
        public class _StartPageViewModel : BindableBase
        {

            private string _TegelPad;
            public string TegelPad
            {
                get { return _TegelPad; }
                set { SetProperty(ref _TegelPad, value); }
            }



            private string _TegelTekst;
            public string TegelTekst
            {
                get { return _TegelTekst; }
                set { SetProperty(ref _TegelTekst, value); }
            }


            public _StartPageViewModel()

            {
                TegelPad = "Afbeeldingen/Tegels/aanvraag.png";
                TegelTekst = "the first image is visible!";
            }
        }
    }

意見:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             xmlns:local="clr-namespace:DemoJan017.Views;assembly=DemoJan017"
             xmlns:conv ="clr-namespace:DemoJan017.Common;assembly=DemoJan-17"
             x:Class="DemoJan017.Views._StartPage">
  <ContentPage.Resources>
    <ResourceDictionary>
      <conv:LocaleAfbeeldingPadConverter
        x:Key="LocaleAfbeeldingPadConverter"/>
    </ResourceDictionary>
  </ContentPage.Resources>
  <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
    <Image Source="{Binding TegelPad, Converter={StaticResource LocaleAfbeeldingPadConverter}}" />
    <Label Text="{Binding TegelTekst}" />
  </StackLayout>  
</ContentPage>

コンバーターは次のようになります。

    using System;
    using System.Globalization;
    using Xamarin.Forms;

    namespace DemoJan017.Common
    {
        class LocaleAfbeeldingPadConverter:IValueConverter

        {
            private static string _assembly;

            static LocaleAfbeeldingPadConverter()
            {
                _assembly = typeof(LocaleAfbeeldingPadConverter).AssemblyQualifiedName.Split(',')[1].Trim() + '.';
            }


            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                string source = _assembly + ((string)value).Replace('/', '.');
                return ImageSource.FromResource(source);
            }


            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }

        }
    }

私はすべての参照とプロパティを適切に配置していると思います。そうしないと、エミュレーター (WIN 用) が正しく反応しないと思いますか?

設定を含む画像を参照してください。 ソリューションの設定

この動作の考えられる原因は何ですか?

よろしく

4

0 に答える 0