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