作为当前项目的一部分,我正在可视化导入的3D模型(.obj文件)。整个项目包含一个Windows窗体以及几个UserControl,我可以通过WinForm激活或停用它们。在其中一个UserControl中,我已经使用Helix Toolkit实现了WPF 3D,以显示已加载的模型。很好现在,在运行项目时,我希望能够与另一个模型交换我的模型。因此,我创建了一个按钮来为.obj文件选择其他路径。该按钮也应作为我的模型的刷新按钮。
初始化组件并单击按钮时,我调用一种方法(CheckOBJ),该方法检查天气是否定义了新的.obj路径。
public void CheckOBJ()
{
if (String.IsnullOrEmpty(UserControlSettings.objPath))
{
ObjReader CurrentHelixObjReader = new ObjReader();
System.Windows.Media.Media3D.Model3DGroup MyModel = CurrentHelixObjReader.Read(@"Path to default .obj file");
mod.Content = MyModel;
}
else
{
ObjReader CurrentHelixObjReader = new ObjReader();
System.Windows.Media.Media3D.Model3DGroup MyModel = CurrentHelixObjReader.Read(@UserControlSettings.objPath);
mod.Content = MyModel;
// Here a method should be called to refresh/update my WPF-model (preferred) or UserControl.
}
}
public UserControlWPFCadmodel()
{
InitializeComponent();
Model.zoomExtents();
CheckOBJ();
}
如果是(字符串不再为空),则应将模型交换为我选择的模型。我猜那很好。不起作用的是新模型的显示。因此,在后台,我认为我确实更改了模型,但未触发可视化。
是否有人对如何刷新WPF或UserControl有任何想法。我已经尝试过UserControl.Refresh()
,this.Refresh()
,Control.Refresh()
。