Ссылка на внешний файл текстуры в автономном XAML, представляющем 3D-модель - PullRequest
5 голосов
/ 02 октября 2009

У меня есть XAML-файл, представляющий 3D-модель с текстурами.

Я хочу, чтобы текстуры читались из того же места, где находится файл, или относительно него.

Я прочитал файл с помощью XamlReader, поэтому я хочу, чтобы файл был автономным.

Я размещаю текстуры, используя ImageBrush, ImageSource которого является URI синтаксиса пакета.

Когда я использую синтаксис siteoforigin, это работает, только если файл текстуры находится рядом с приложением. Я хочу, чтобы он был рядом с Xaml, где бы он ни был.

Я попытался установить текущий каталог в каталог Xaml, но это не помогло.

Использование синтаксиса пакета также не работает - он просто ищет ресурс с таким именем.

Как мне написать источник изображения Xaml (или есть другой способ разместить текстуры для кисти рассеянного материала?), Чтобы она работала?

Итай.

Ответы [ 2 ]

1 голос
/ 13 мая 2015

Я решил эту проблему, просто предварительно загрузив XAML в поток памяти, заменив операторы siteoforigin: ,,, путем, по которому был расположен xaml, а затем загрузив модель из обновленного потока памяти с помощью XamlReader.Load *. 1001 *

Кстати, мои модели - это экспорт SketchUp, экспортируемый с вашим собственным плагином xaml exporter, хотя я изменил его для экспорта нормалей и поворота модели в систему координат WPF, среди прочего.

0 голосов
/ 17 мая 2011

Если ваша модель представляет собой отдельный xaml-файл, я думаю, будет проблематично загрузить текстуру, используя только xaml, как вы описываете. Сайт происхождения всегда будет начинаться с того места, где находится приложение , поэтому, если ваш файл xaml находится в каком-то произвольном месте, а не по тому же пути к приложению, он не будет использоваться

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

...