При связывании источника изображения с BitmapSource изображение остается пустым - PullRequest
2 голосов
/ 07 марта 2012

Я пытаюсь показать видео с камеры Kinect в приложении WPF.Тем не менее, изображение выглядит пустым.

Ниже приведен фрагмент того, что у меня есть в моем классе Kinect, все это срабатывает правильно, и BitmapSource, кажется, создан отлично.это то, что у меня есть в моей ViewModel.

    void kinectService_FrameChanged(BitmapSource frame)
    {

        image = frame;
    }

    BitmapSource image;
    public BitmapSource Image
    {
        get { return this.image; }
        set
        {
            this.image = value;
            this.OnPropertyChanged("Image");
        }
    }

А ниже это то, что у меня есть в моем XAML View.

<Image Canvas.Left="212" Canvas.Top="58" Height="150" Name="image1" Stretch="Fill"     Width="200" Source="{Binding Path=Image}"/>

Все события и свойства, похоже, обновлены.Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 07 марта 2012
image = frame;

должно быть:

Image = frame;

в противном случае уведомление об изменении вашего свойства не сработает.

1 голос
/ 07 марта 2012

Я не уверен, но вам не нужно использовать заглавную букву I:

void kinectService_FrameChanged(BitmapSource frame)
{
   Image = frame;
}

забыл добавить: вот почему застревает WPF. Все эти маленькие ловушки и ошибки. У меня редко возникали проблемы с синхронизацией в приложениях, которые должны предотвращать привязки, и теперь вместо этого я получаю массу мелких проблем с самой привязкой.

1 голос
/ 07 марта 2012

Попробуйте изменить:

 void kinectService_FrameChanged(BitmapSource frame)
 {
    this.image = frame;
 }

до

 void kinectService_FrameChanged(BitmapSource frame)
 {
    this.Image = frame;
 }

Поскольку вы не используете свое свойство, событие PropertyChanged никогда не будет вызываться, поэтому пользовательский интерфейс не будет знать, что ему нужно получить новое значение изображения.

...