我正在显示一些3D模型作为Model3DGroups。
它们被捕获了MouseDown事件的Viewport3D包围。
我想确定单击了哪个Model3DGroup(它们都有名称)。
我从这个开始:
Point location = e.GetPosition(karte.ZAM3DViewport3D);
HitTestResult hitResult = VisualTreeHelper.HitTest(karte.ZAM3DViewport3D, location);
if (hitResult != null )
{
Debug.WriteLine("BREAKPOINT");
// Hit the visual.
}
击中WriteLine命令的断点后,我在本地视图中查找正确的变量,但找不到它。
您能帮我找出modelvisual3d所属的组需要走哪条路径吗?
这是树的屏幕截图:
最佳答案
我通过用ModelUIElement3D包围Model3DGroup来做到这一点。
<ModelUIElement3D MouseDown="ModelUIElement3D_MouseDown" x:Name="LogoMouseDown">
MouseDown函数以这种方式处理它:
private void ModelUIElement3D_MouseDown(object sender, MouseButtonEventArgs e)
{
if (sender == trololo)
{
RaiseModelClickEvent("auditorium");
}
else if (sender == LogoMouseDown)
{
RaiseModelClickEvent("logo");
}
}
关于c# - WPF:如何在可视树中查找单击的3D模型所在的Model3DGroup?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3772476/