Я программирую средство просмотра 3d с Helixtoolkit sharpdx (WPF). По сути, я добавляю на сцену форму 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);
}
}
Выше вы можете увидеть упрощенный метод. Иногда это работает, а иногда не работает. Я имею в виду, что цвет иногда хорошо обновляется на зрителе, но иногда мне приходится перемещать камеру, чтобы обновить цвет ... Есть ли способ принудительного обновления без перемещения камеры?