我正在使用视觉状态作为导航方式制作嵌套/分层菜单。当在菜单中从左到右时,这非常有效。如果我单击主菜单 3,它会变为蓝色并弹出附加的子菜单,如果我单击子菜单 2,则相同。现在的问题是,如果我单击主菜单 1,子菜单 2 和子菜单 4 将保持“选中”(阅读:蓝色),尽管它们将从屏幕上移除。
我的想法是我想要一个更好的视觉状态结构。我想我需要以下内容:
- 一个未选择所有内容的基本状态
这里的想法是,每当我按下按钮时,它都会取消选择所有内容,并删除所有子菜单。(如果从更远的元素调用,则重新填充)。
- 5 种主菜单状态
理想情况下,这些应该自动继承基本状态,这样我就不能一次全部选择它们,而只能打开一个子菜单。
- 5 * x 子菜单状态
对于每个菜单项,我需要每个菜单项中每个子菜单的状态,理想情况下,这些状态将再次经历循环。取消选择所有内容,选择所选主菜单项,然后选择子菜单项,以及打开相应的子子菜单。
- 5 * x * x SubSub 菜单状态
你现在明白了,这些也应该取消选择所有内容,然后重新选择我以前的选择。
那么,有没有人知道如何解决这个问题,因为我猜这可能会变成 100 个州?是否至少有一种简单的方法可以使每个视觉状态都从其“父级”继承?
<TextBlock x:Name="MainMenu3" Text="MainMenu3" Foreground="Black">
<i:Interaction.Triggers>
<interactivity:RoutedEventTrigger RoutedEvent="interactivity:InteractionControl.TouchPress">
<ei:GoToStateAction StateName="MainMenu3"/>
</interactivity:RoutedEventTrigger>
</i:Interaction.Triggers>
</TextBlock>