我正在使用Helixtoolkit sharpdx(WPF)编程3d查看器。基本上,我在场景上添加了stl形状。在此形状上,我添加了一些由LineGeomtryModel3D制成的轮廓。在运行时,当我从列表中选择模型时,将新颜色应用于轮廓:
private void UpdateColorModels()
{
//MAJ des couleurs en fonction du status
try
{
//Surcharge du MainColor si selectionné
if (IsSelected)
{
MainColor = System.Windows.Media.Colors.Yellow;
Thickness = 2;
DepthBias = -10000000;
}
//Application de la couleur aux éléments visuels
SharpDX.Color newMainColor = new Color(MainColor.R, MainColor.G, MainColor.B, MainColor.A);
if (m_Outlines != null)//m_Outlines is List<LineGeometry3DModel>
foreach (var item in m_Outlines)
{
item.Color = newMainColor;
item.DepthBias = DepthBias;
item.Thickness = Thickness;
}
}
catch (SharpDXException sdxex)
{
Console.WriteLine("SharpDXException:" + sdxex.Message);
}
}
以上,您可以看到简化方法。有时它有时起作用,有时却不起作用。我的意思是有时候查看器上的颜色有时会很好地刷新,但是有时我必须移动相机以刷新颜色...有没有办法在不移动相机的情况下强制刷新?
您可以尝试使用invalidaterenderer方法。您有几个线模型?