Enabling/disabling 菜单项 - Expression Blend
Enabling/disabling menu items - Expression Blend
我需要在单击某个特定菜单项时将其禁用。如何在事件处理程序中为此编写代码?
代码隐藏事件处理程序:
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
((MenuItem)sender).IsEnabled = false;
}
"sender" 是点击的项目,我们需要将其转换为 MenuItem 才能设置其 IsEnabled 属性。
以下是在 xaml 中连接事件处理程序的方法:
In WPF how to add menu item event?
您可以从后台代码执行此操作或使用事件触发器(对于非常简单的任务,这通常是我的首选选项,因为您可以将它们定义为资源并重复使用)。
答案背后的代码:
<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>
我需要在单击某个特定菜单项时将其禁用。如何在事件处理程序中为此编写代码?
代码隐藏事件处理程序:
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
((MenuItem)sender).IsEnabled = false;
}
"sender" 是点击的项目,我们需要将其转换为 MenuItem 才能设置其 IsEnabled 属性。
以下是在 xaml 中连接事件处理程序的方法: In WPF how to add menu item event?
您可以从后台代码执行此操作或使用事件触发器(对于非常简单的任务,这通常是我的首选选项,因为您可以将它们定义为资源并重复使用)。
答案背后的代码:
<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>