есть ли способ установить исходный код для изображения из стандартной библиотеки классов в UWP - PullRequest
0 голосов
/ 07 августа 2020

Я создал приложение Xamarin Native App только для создания спецификации платформы UI Part c и общего кода (Model, ViewModel) с использованием библиотеки стандартных классов. net. В проекте UWP я установил исходный путь следующим образом

Source="pack://application:,,,/MyClassLibraryName;Component/Assets/AppLogo.png" 

У меня это не работает!

1 Ответ

0 голосов
/ 07 августа 2020

Я создал приложение Xamarin Native только для создания спецификации платформы UI Part c и общего кода (Model, ViewModel) с использованием. net библиотеки стандартных классов

Для этого сценария, вы можете сослаться на этот документ , который заставляет ImageResourceExtension загружать изображение Embedded из. net библиотеки стандартных классов.

Нам нужно добавить следующий код в . net стандартная библиотека классов .

[Preserve(AllMembers = true)]
[ContentProperty(nameof(Source))]
public class ImageExtension : IMarkupExtension
{
    public string Source { get; set; }

    public object ProvideValue(IServiceProvider serviceProvider)
    {
        if (Source == null)
            return null;

        // Do your translation lookup here, using whatever method you require
        var imageSource = ImageSource.FromResource(Source, typeof(ImageExtension).GetTypeInfo().Assembly);

        return imageSource;
    }
}

Затем добавьте файл изображения в. net стандартную библиотеку классов и измените действие сборки на Embedded

Использование

ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:mySource="clr-namespace:ImageLib;assembly=ImageLib"
            x:Class="WorkingWithImages.EmbeddedImagesXaml">
   <StackLayout Margin="20,35,20,20">
       <Image Source="{mySource:Image ImageLib.logo.jpg}" />
   </StackLayout>
/ContentPage>

Обратите внимание: путь к изображению: имя_класса.imagename.jpg

Обновление

Вы можете использовать схему uwp uri, чтобы добавить путь к изображению для управления изображениями, например

<ImageBrush ImageSource="ms-appx:///Image/AppLogoicon.png" Stretch="UniformToFill" x:Name="Image" />
...