我遇到了一个问题,需要在菜单项上应用条件样式,这里是我代码片段的一部分:
<Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0,10,0,0">
<Menu HorizontalAlignment="Left" KeyboardNavigation.TabNavigation="Once" Background="Transparent" d:LayoutOverrides="Height">
<MenuItem Header="Menu1" Style="{DynamicResource M_Left}" />
<MenuItem Header="Menu2" Style="{DynamicResource M_Middle}" />
<MenuItem Header="Menu3" Style="{DynamicResource M_Right}" Visibility="{Binding IsEligibleToDisplay, Converter={StaticResource MyVisibilityConverter}}" />
</Menu>
</Grid>
在上面的代码中,“IsEligibleToDisplay”是一个布尔属性,而“MyVisibilityConverter”则根据其值为True或False将Visibility设置为Visible或Hidden。
希望实现的效果是:如果“Menu3”的可见性是Hidden,也就是说“IsEligibleToDisplay”等于false,则“Menu2”的样式应该是Style=”{DynamicResource M_Right}”,反之,则样式应该是Style=”{DynamicResource M_Middle}”。
代码示例(仅供参考,语法可能有误):
<MenuItem Header="Menu2" Style="IsEligibleToDisplay ? {DynamicResource M_Middle} : {DynamicResource M_Right}" />
任何帮助都将不胜感激!