[英]Enabling/disabling menu items - Expression Blend
单击时,我需要禁用特定的菜单项。 如何在事件处理程序中为此编写代码?
代码隐藏事件处理程序:
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
((MenuItem)sender).IsEnabled = false;
}
“发送者”是单击的项目,我们需要将其强制转换为MenuItem才能设置其IsEnabled属性。
这是在xaml中连接事件处理程序的方法: 在WPF中,如何添加菜单项事件?
您可以从后面的代码中完成操作,也可以使用事件触发器(通常,对于非常简单的任务,这是我的首选,因为您可以将它们定义为资源并重用)。
背后的代码:
<MenuItem Header="Click Me" Click="MenuItem_Click">
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
var menuItem = sender as MenuItem;
if (menuItem != null) menuItem.IsEnabled = false;
}
仅XAML答案:
<MenuItem Header="Click Me">
<MenuItem.Triggers>
<EventTrigger RoutedEvent="MenuItem.Click">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(MenuItem.IsEnabled)">
<DiscreteBooleanKeyFrame KeyTime="0" Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</MenuItem.Triggers>
</MenuItem>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.