Можно ли установить базовый путь за пределами каталога моего приложения при привязке исходного пути изображения к относительному пути в WPF? - PullRequest
1 голос
/ 09 апреля 2010

Итак, я пытаюсь отобразить изображение, которое находится вне пути моего приложения. У меня есть только относительный путь к изображению, такой как «images / background.png», но мои изображения находятся где-то еще, я мог бы выбрать это базовое местоположение во время выполнения, чтобы привязка отображалась в нужную папку. Например, «e: \ data \ images \ background.png» или «e: \ data \ theme \ images \ background.png»

<Image Source="{Binding Path=ImagePathWithRelativePath}"/>

Есть ли способ указать либо в XAML, либо в коде базовой директории для этих изображений?

1 Ответ

1 голос
/ 09 апреля 2010

Объявление статического поля скажем BasePath в коде позади

class Utility
{
    public static BasePath;
}

назначьте ему путь, который вы хотите использовать в качестве базового пути

объявить конвертер так:

public class RelativePathToAbsolutePathConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        //conbine the value with base path and return
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        // return whatever you want
    }
}

Обновите привязку для использования конвертера

<Window.Resources>
<local:RelativePathToAbsolutePathConverter x:Key="RelativePathToAbsolutePathConverter"/>
</Window.Resources>

<Image Source="{Binding Path=ImagePathWithRelativePath, Converter={StaticResource RelativePathToAbsolutePathConverter}}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...