<Window x:Class="project.View.AddWorkerWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:project.View"
xmlns:local1="clr-namespace:project.Helpers"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
Title="AddWorkerWindow" Height="626.582" Width="831.899">
<Window.Resources>
<local1:ImgSourceConverter x:Key="ImgSourceConverter"></local1:ImgSourceConverter>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel>
<Image
Margin="0 40 0 0"
Source="{Binding ImgFile, Converter={StaticResource ImgSourceConverter}}"
Height="200"
Width="200"
/>
Свойство во ViewModel
private string imgFile;
public string ImgFile
{
get { return imgFile; }
set
{
imgFile = value;
NotifyPropertyChanged();
}
}
Инициализирую свойство ImgFile
в конструкторе ViewModel
ImgFile = "../images/man.png";
При запуске приложения картинка не отображается.
Когда меняю свойство ImgFile
- аналогично
Вставляю тот же путь в тег <Image>
Source="../images/man.png"
- картинка видна
В чем может быть причина?
Мой Image находлися в ListView и при подстановке в Source пути из бд (строка), картинка не выводилась. Помогла конвертация в байт код и инициализация BitMap
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
{
string part = (string)value;
string path = @"..\..\images\" + part;
var bitmapImage = new BitmapImage();
byte[] rawImageData = null;
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
rawImageData = new byte[fs.Length];
int count = (int)fs.Length / 1024;
for (int i = 0; i < count; i++)
fs.Read(rawImageData, i*1024, 1024);
int last = (int)(fs.Length - count * 1024);
fs.Read(rawImageData, count*1024, last);
}
using (var stream = new MemoryStream(rawImageData))
{
bitmapImage.BeginInit();
bitmapImage.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.StreamSource = stream;
bitmapImage.EndInit();
}
return bitmapImage;
}
return null;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Настроил IIS на аутентификацию по смарт-карте по данной статье https://blogjayway
Нужно, чтобы значения из массива всегда выводились в случайном порядкеПробовал array_rand, но эта функция перемешивает только ключи массива