在单击临时按钮后,选项卡将切换,但是在单击3D模型后,相同的功能将不起作用。
我在2个选项卡中有2个3d模型,并且要在此模型上选择一堆点,除了在选项卡之间切换外,我已经全部完成了。 我以为我用太多的操作弄乱了东西,但是我删掉了所有不必要的东西,只剩下带有两个选项卡的TabController和每个选项卡上一个3D模型。为了简化切换选项卡,我在ViewPort3D上分配了MouseDown操作,并在其他任何地方使用代码进行填充。
Xaml代码:
<Grid Grid.Column="0">
<TabControl x:Name="Tabs3DControll" SelectedIndex="{Binding SelectedTabIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TabItem x:Name="TopTab" Header="Top">
<t:HelixViewport3D x:Name="Viewport3DTOP" CameraRotationMode="Turntable" ShowCameraTarget="True" IsHeadLightEnabled="True" MouseDown="Viewport3D_MouseDown" ShowCoordinateSystem="True">
<t:FileModelVisual3D x:Name="FileModel3DTOP" MouseMove="ModelOnMouseMove">
</t:FileModelVisual3D>
</t:HelixViewport3D>
</TabItem>
<TabItem x:Name="BottomTab" Header="Bottom" >
<t:HelixViewport3D x:Name="Viewport3DBOTTOM" CameraRotationMode="Turntable" ShowCameraTarget="True" IsHeadLightEnabled="True" MouseDown="Viewport3D_MouseDown" ShowCoordinateSystem="True">
<t:FileModelVisual3D x:Name="FileModel3DBOTTOM" MouseMove="ModelOnMouseMove">
</t:FileModelVisual3D>
</t:HelixViewport3D>
</TabItem>
</TabControl>
</Grid>
切换标签的代码:
private void Viewport3D_MouseDown(object sender, MouseButtonEventArgs e)
{
int newIndex = Tabs3DControll.SelectedIndex + 1;
if (newIndex >= Tabs3DControll.Items.Count)
newIndex = 0;
Tabs3DControll.SelectedIndex = newIndex;
}
我将绑定添加到SelectedIndex,以查看是否有一些值从外部更改,但值似乎合法,只有视图未正确显示,并且仅当我单击3d模型时,单击HelixViewport3D外部的按钮后选项卡才会切换。
如何在helix工具包中切换选项卡并单击3D模型?