Странная проблема с файлом WPF XAML - PullRequest
0 голосов
/ 10 июня 2010

Я только что запустил очень простое приложение WPF, которое состоит из основного большого изображения и четырех небольших изображений.

Чтобы помочь с макетом, я создал несколько файлов JPEG в MsPaint, содержащих изображения -2, -1, 0, +1 и +2, и просто скопировал их на верхний уровень проекта. каталог.

Сегмент XAML содержит пять изображений:

<Image Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="1"
    Margin="0,0,0,0" Name="imgPicture" Stretch="Fill" VerticalAlignment="Top"
    Source="file:///C:/DAndS/Pax/MyDocs/VS2008/Projects/MyProj/zero.jpg" />
<Image Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="1" Grid.RowSpan="1"
    Margin="0,0,0,0" Name="imgPicMinus2" Stretch="Fill" VerticalAlignment="Top"
    Source="file:///C:/DAndS/Pax/MyDocs/VS2008/Projects/MyProj/minus2.jpg" />
<Image Grid.Column="2" Grid.Row="4" Grid.ColumnSpan="1" Grid.RowSpan="1"
    Margin="0,0,0,0" Name="imgPicMinus1" Stretch="Fill" VerticalAlignment="Top"
    Source="file:///C:/DAndS/Pax/MyDocs/VS2008/Projects/MyProj/minus1.jpg" />
<Image Grid.Column="3" Grid.Row="4" Grid.ColumnSpan="1" Grid.RowSpan="1"
    Margin="0,0,0,0" Name="imgPicPlus1" Stretch="Fill" VerticalAlignment="Top"
    Source="file:///C:/DAndS/Pax/MyDocs/VS2008/Projects/MyProj/plus1.jpg" />
<Image Grid.Column="4" Grid.Row="4" Grid.ColumnSpan="1" Grid.RowSpan="1"
    Margin="0,0,0,0" Name="imgPicPlus2" Stretch="Fill" VerticalAlignment="Top"
    Source="file:///C:/DAndS/Pax/MyDocs/VS2008/Projects/MyProj/plus2.jpg" />

Когда я пытаюсь установить свойство источника для изображения plus2, он выдает диалоговое окно, в котором указано:

Property value is not valid.
Details
   |
   V
   The file plus2.jpg is not part of the project or
   its 'Build Action' property is not set to 'Resource'.

Тем не менее, если я переименую файл в plus3.jpg или plus2x.jpg, у меня нет этой проблемы.

Почему именно жалоба на plus2.jpg?

Ответы [ 2 ]

1 голос
/ 10 июня 2010
  • Возможно ли, что вы ранее добавили, а затем удалили plus2.jpg?

  • Возможно, что вы не построили решение между шагами?

    • Очистить src, построить решение, установить src на известное рабочее изображение, построить решение, установить src на нерабочее изображение.

    • Очистить srcвсех изображений, решение для сборки, установите для параметра «Действие сборки» для всех изображений значение «Нет», для решения для сборки установите для параметра «Действия для сборки» значение «Ресурс», решение для сборки, установите src для всех изображений.

  • (наиболее вероятно) Возможно поврежденное изображение, изображение с неверной цветовой палитрой, изображение сохранено в недопустимом формате.

    • Проверьте, можете ли вы загрузить изображение во время выполнения
    • Загрузка изображения с помощью Resouce Editor и «Сохранить как».
    • Расширение файла не имеет значения, поскольку внутренний графический формат определяет тип изображения.Это означает, что если вы создали JPG, но сохранили его как BMP, дизайнер все равно будет загружать изображение правильно.
  • Попробуйте <Image.Source> <BitmapImage UriSource="sampleImages/bananas.jpg" /> </Image.Source>

Я безуспешно пытался продублировать проблему.Я смог использовать изображения, которые я «добавил существующие», и изображения, в которых я указал src = "file: /// c: ..." Изображения внутри проекта, с набором действий сборки и без него.Даже изображения вне проекта.

Моя другая мысль - что-то не так с изображением, но я не добавил комментарий.Тем не менее, теперь, когда я думаю об этом, дизайнер попытается загрузить изображение, как только вы установите src.Если изображение не может быть загружено, то будет выдано исключение.Поскольку вы находитесь во время разработки, вы получаете неверное приглашение свойства с сообщением подробностей "obsure".

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

0 голосов
/ 10 июня 2010

Меня это не волнует.VS2008 при создании приложений WPF имеет десятки таких предупреждений, и большинство из них исчезает после сборки.Если приложение запускается и работает - оставьте его в покое.Лично я установил около 10-15 исправлений для различных ошибок, связанных с WPF в VS2008.VS2010 намного лучше.

Кроме того, вероятно, лучше включить файлы изображений в ресурсы - вы добавляете их в проект (Добавить существующий элемент), а затем проверяете, установлено ли для действия сборки значение Ресурс.(щелкните правой кнопкой мыши этот файл в обозревателе решений и выберите «Свойства»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...