Я использую Blend 4 и VisualStudio 2010 для создания приложения WPF 4.0 для киоска с функцией, подобной мастеру. Я решил, что хотел бы, чтобы отдельные шаги были перенесены в отдельные элементы UserControls, чтобы главное окно приложения было как можно меньше. Однако у меня возникают проблемы с включением UserControl в главное окно, поскольку пути к изображениям искажаются после перемещения XAML в отдельный файл UserControl.
Этот код работает, когда он помещается в главное окно XAML:
<Button Grid.Row="1" Grid.Column="2" Height="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" Margin="20" VerticalAlignment="Bottom" Style="{DynamicResource ImageButton}">
<Button.Background>
<ImageBrush ImageSource="/Images/Extra/motor_boat_2.jpg" Stretch="UniformToFill"/>
</Button.Background>
</Button>
Но когда я перемещаю этот код в отдельный пользовательский элемент управления и включаю его в главное окно, конструктор выдает и исключение:
IOException: не удается найти ресурс 'images / extra / sailing_boat.jpg'.
Я пытался использовать несколько различных синтаксисов, но все они терпят неудачу, иногда используя каталог %ProgramFiles%
, в других случаях преобразовывая абсолютный путь в относительный (как указано выше). Иногда из-за этого не удается выполнить операцию Build Project в Blend 4.
Все изображения помечены как Ресурс , при этом для параметра Действие построения установлено значение Копировать всегда .
VisualStudio не имеет проблем со сборкой и запуском приложения, UserControl корректно отображается в запущенном приложении без исключений.
EDIT:
Использование относительных путей в UserControl, а затем сборка и запуск приложения из VisualStudio и переключение обратно в Blend корректно отображают изображения до следующей модификации UserControl.