gpt4 book ai didi

C# WPF 上下文菜单项单击事件返回 null

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:10 27 4
gpt4 key购买 nike

我在 C# 中使用 WPF。我有一个按钮网格,如果右键单击,我会为每个按钮分配一个上下文菜单。右键单击按钮可以正常工作,并且会显示上下文菜单,但单击菜单项会给出一个空发件人。有什么问题吗?下面是嵌入到 Window XAML 代码中的相关代码:

 <Window.Resources>
<ContextMenu x:Key="cmButton">
<MenuItem Header="Copy" Click="Copy_Click" />
<MenuItem Header="Cut" />
<Separator />
<MenuItem Header="Paste" Click="Paste_Click" />
</ContextMenu>
</Window.Resources>

这里是相关的 C# 代码:

public void WarpHeadCell_RightClick(DraftWindow w, Button b)
{
ContextMenu cm = w.FindResource("cmButton") as ContextMenu;
cm.PlacementTarget = b;
cm.IsOpen = true;
}

private void Copy_Click(object sender, RoutedEventArgs e)
{
MenuItem mi = e.OriginalSource as System.Windows.Controls.MenuItem;
ContextMenu cm = mi.ContextMenu;
Button b = (Button)cm.PlacementTarget;
}

mi 总是空的,有人知道吗?

最佳答案

我看不出 mi 为 null 的任何原因,但您没有包含所有内容,所以我在这里冒险并猜测 mi.ContextMenu 是您遇到问题的地方。菜单项本身没有 ContextMenu,但它有一个 Parent 属性,这是它所属的 ContextMenu,可能就是您要查找的内容。

private void Copy_Click(object sender, RoutedEventArgs e)
{
MenuItem mi = sender as MenuItem;
ContextMenu cm = mi.Parent as ContextMenu;
Button b = cm.PlacementTarget as Button;
}

关于C# WPF 上下文菜单项单击事件返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48452760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com