Почему ImageBrush выдает ошибку, но все равно отображается нормально? - PullRequest
2 голосов
/ 13 февраля 2011

У меня есть пользовательский элемент управления со следующим DependencyPorperty:

  public static readonly DependencyProperty MyImageProperty = DependencyProperty.Register(
      "MyImage",
      typeof(ImageSource),
      typeof(ImageButton), // that's my custom control class name
      new PropertyMetadata(null));

  public ImageSource MyImage
  {
      get { return (ImageSource)GetValue(MyImageProperty); }
      set { SetValue(MyImageProperty, value); }
  }

Если я попробую следующий код:

        <Border Name="btnBorder" Height="30">
                <Border.Background>
                    <ImageBrush ImageSource="{Binding Path=MyImage}"  />
                </Border.Background>
        </Border>

У меня всегда есть следующая ошибка в выходных данных Visual Studio 2010window:

System.Windows.Data Ошибка: 2: не удается найти управляющий FrameworkElement или FrameworkContentElement для целевого элемента.BindingExpression: Path = MyImage;DataItem = NULL;целевым элементом является ImageBrush (HashCode = 47992654);Свойство target - «ImageSource» (тип «ImageSource»)

, но приложение по-прежнему работает нормально и изображение загружается нормально, без исключений.

Но если я сделаю следующее:

<Image Name="btnImage" Source="{Binding MyImage}" />

ошибок нет, и снова приложение работает нормально.

Почему эта ошибка для ImageBrush?Я что-то не так делаю?

...