Я пытаюсь добавить динамическое изображение в свою форму WPF. Я добавил изображение так:Получение динамического изображения через событие в WPF
<Image Height="212" HorizontalAlignment="Left" Margin="12,167,0,0"
Name="picture_scan" Stretch="Fill" VerticalAlignment="Top" Width="227"
Source="{Binding FingerprintSource}" />
Источник приводит к следующему коду в моем классе обслуживания:
public BitmapSource FingerprintSource
{
get { return fingerprintScan.WpfImageSource; }
}
WpfImageSource
является BitmapSource
. Как я уже сказал, изображение динамично. Через событие из моего сканере отпечатков пальцев, следующий код называется:
private void HandleFingerprintObtainedEvent(Fingerprint fingerprint, FingerprintImage fingerprintImage)
{
Debug.WriteLine("New fingerprint found!");
fingerprintScan = fingerprintImage;
}
Когда я запустить программу и нажать палец на читателе, новое изображение отпечатка пальца найден. Изменяется значение fingerprintScan
. Но проблема в том, что до и после пальца на сканере растровое изображение пуст (белый?). Что я делаю не так? Нужно ли мне делать больше, кроме привязки данных, например, проверять события или что-то еще? Это проблема, когда источником привязки данных является BitmapSource
вместо BitmapImage
?
Ok, поэтому я попробовал код из примера и мой 'RaisePropertyChanged' стреляют, когда я ввожу новое изображение. Как мне позволить привязке WPF знать, что это измененный Fingerprintscan, и соответственно обновить изображение в WPF? – Joetjah
Во-первых, убедитесь, что ваше окно/страница WPF правильно настроено DataContext. Как только вы запускаете событие, привязка получает его и автоматически обновляет значение (в данном случае изображение). Если этого не происходит, посмотрите окно вывода, чтобы увидеть какие-либо проблемы с привязкой. – JoanComasFdz
DataContext установлен правильно. Я использую другие значения для ComboBoxes и ListViews. Событие активируется, когда я нажимаю палец на сканер, и изображение обновляется (заменяется). Но тогда моя картина не освежена. Возможно, ошибка находится в 'RaisePropertyChanged (« fingerprintScan »);'? Какую строковую ценность мне нужно дать в качестве аргумента? – Joetjah