【发布时间】:2019-07-18 14:21:52
【问题描述】:
我尝试根据VisualStateManager 添加/删除MenuFlyout。
我有两个状态 Touch 和 NoTouch。我想在名为 rowGrid 的网格上设置 Flyout。我尝试了不同版本的 VisualStates。
例如:
<VisualStateGroup x:Name="TouchGroup">
<VisualState x:Name="Touch">
<VisualState.Setters>
<Setter Target="rowGrid.ContextFlyout">
<Setter.Value>
<MenuFlyout >
<MenuFlyoutItem Text="Play" />
</MenuFlyout>
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="NoTouch">
<VisualState.Setters>
<Setter Target="rowGrid.ContextFlyout" Value="{x:Null}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
然而,一旦使用StateManager.GoToState(...) 方法激活NoTouch 状态,这将引发COMException (E_FAIL)。另一种状态将设置 Flyout,但没有任何内容,仅提供空菜单。
网格本身位于ListView 的DataTemplate 内
我错过了什么?
【问题讨论】: