wpf - 链接到表示 3D 模型的自包含 XAML 中的外部纹理文件

标签 wpf xaml resources 3d textures

我有一个 XAML 文件,表示带有纹理的 3D 模型。

我想让纹理从文件所在的同一位置读取,或相对于它。

我使用 XamlReader 读取文件,所以我希望文件是自包含的。

我使用 ImageBrush 放置纹理,其中 ImageSource 是包 Synatx URI。

当我使用“siteoforigin”语法时,这仅在纹理文件位于应用程序旁边时才有效。我希望它在 Xaml 旁边,无论它在哪里。

我尝试将当前目录设置为 Xaml 目录,但没有帮助。

不使用包语法也不起作用 - 它只是查找具有该名称的资源。

我需要如何编写 Xaml 图像源(或者是否有另一种方法可以为漫反射 Material 画笔放置纹理?)才能正常工作?

痛。

最佳答案

我通过将 XAML 预加载到内存流中,用 xaml 所在的路径替换 siteoforigin:,,, 语句,然后使用 XamlReader.Load 从更新的内存流加载模型来解决这个问题

顺便说一句,我的模型是使用您自己的 xaml 导出器插件导出的 Sketchup 导出,尽管我对其进行了修改以导出法线并将模型旋转到 WPF 坐标系等。

关于wpf - 链接到表示 3D 模型的自包含 XAML 中的外部纹理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509906/

相关文章:

c# - 在 "Resources"参数中多次指定该项目。 "Resources"参数不支持重复项

c# - 为什么 WPF IsKeyboardFocused 提供错误信息?

xaml - 使用可绑定(bind)集合启用 ScrollViewer Horizo​​ntalSnapPoints

.net - WPF 自定义命名空间不起作用

C# DataAnnotations 和资源文件 - 为什么没有简单的构造函数?

C++将结构复制到另一个程序的资源

c# - 关于mvvm页面导航的两个问题

c# - PreviewExecuted 后未调用 Executed

选择模板控件时,带有 DataTemplate 的 Wpf 列表框不选择项目

WPF MVVM 组合框颜色