我是一个C#和WPF的初学者,我尝试了几天在我的应用程序中制作一个Ifc查看器。我尝试了很多方法,但我没有成功,我转身。
我从论坛上的另一个主题中得到了灵感:"如何在WPF中使用Xbim在3D中可视化. IFC"。目前我的XAML文件看起来像这样:
xmlns:presentation="http://schemas.Xbim.com/Presentation"
<Window.Resources>
<ObjectDataProvider x:Key="ModelProvider" IsInitialLoadEnabled="False" />
</Window.Resources>
<Grid Name="MainFrame" DataContext="{StaticResource ModelProvider}">
<presentation:DrawingControl3D x:Name="test3D" Model="{Binding ObjectInstance}"/>
</Grid>
还有我的C#文件:
using System.Windows;
using System.Windows.Data;
using Xbim.Ifc;
using Xbim.ModelGeometry.Scene;
namespace okokokok
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
openFile();
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
ModelProvider.Refresh();
}
private ObjectDataProvider ModelProvider
{
get
{
return MainFrame.DataContext as ObjectDataProvider;
}
}
public void openFile()
{
var model = IfcStore.Open(@"C:\Users\e.mazzone\Desktop\Mission_C#\Test_Ifc_1.ifc");
var context = new Xbim3DModelContext(model);
context.CreateContext();
ModelProvider.ObjectInstance = model;
}
}
}
这将打开Drawing控件,但我们看不到IFC。我尝试了每种IFC类型,但都不起作用。我认为可能是xaml文件和C#文件之间存在绑定问题。
有没有人能给我建议或给我一个好的教程?
谢谢你!
1条答案
按热度按时间aiazj4mn1#
不久前我确实创建了一个简单的IFC查看器,我的DrawingControl3D名为DrawingControl,简化后的代码如下所示:
xaml:
密码:
对我来说,它的工作原理和预期的一样。