gpt4 book ai didi

wpf - 获取按钮上下文菜单的所有者

转载 作者:行者123 更新时间:2023-12-04 14:20:52 25 4
gpt4 key购买 nike

标题几乎说明了一切。我有很多按钮,它们都有相同的上下文菜单,我想从单击事件中确定哪个按钮被右击以到达那里。

此代码不起作用,placementTarget 为空:

private void mi_Click(object sender, RoutedEventArgs e)
{
Button contextMenuEzen = null;

MenuItem mnu = sender as MenuItem;

if (mnu != null)
{
ContextMenu ize =(ContextMenu)mnu.Parent;
contextMenuEzen = ize.PlacementTarget as Button;
}
}

请帮我!

最佳答案

对我来说,这个例子有效:
XAML

<Window.Resources>
<!-- For all MenuItems set the handler -->
<Style TargetType="{x:Type MenuItem}">
<EventSetter Event="Click" Handler="MenuItem_Click" />
</Style>

<!-- One ContextMenu for all buttons (resource) -->
<ContextMenu x:Key="MyContextMenu">
<MenuItem Header="Click this" />
<MenuItem Header="Two" />
<MenuItem Header="Three" />
</ContextMenu>
</Window.Resources>

<Grid>
<Button x:Name="MyButton1" Width="100" Height="30" Content="MyButton1" ContextMenu="{StaticResource MyContextMenu}" />

<Button x:Name="MyButton2" Margin="0,110,0,0" Width="100" Height="30" Content="MyButton2" ContextMenu="{StaticResource MyContextMenu}" />
</Grid>
Code behind
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem mnu = sender as MenuItem;
Button MyButton = null;

if (mnu != null)
{
ContextMenu MyContextMenu = (ContextMenu)mnu.Parent;
MyButton = MyContextMenu.PlacementTarget as Button;
}

MessageBox.Show(MyButton.Content.ToString());
}

关于wpf - 获取按钮上下文菜单的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259858/

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