1
我想为WPF项目中的某些控件添加一些上下文菜单。这本身就很容易。我想知道是否有可能在其中有文本框或日期选择器等控件,很像Access在单击表格中的单元格时可以通过文本框的值进行过滤。将控件添加到WPF中的上下文菜单
谢谢。
我想为WPF项目中的某些控件添加一些上下文菜单。这本身就很容易。我想知道是否有可能在其中有文本框或日期选择器等控件,很像Access在单击表格中的单元格时可以通过文本框的值进行过滤。将控件添加到WPF中的上下文菜单
谢谢。
你可以把你喜欢的东西放在ContextMenu
以内,而不仅仅是MenuItems
。我从来没有想过,但我想你可以用它作为Popup
当有人右键单击它。您还可以添加事件等
<StackPanel>
<StackPanel.Resources>
<ContextMenu x:Key="myContextMenu">
<StackPanel>
<TextBox Text="Some Text.."/>
<DatePicker/>
<Button Content="Click Me" Click="Button_Click"/>
</StackPanel>
</ContextMenu>
</StackPanel.Resources>
<TextBox Text="Display some controls on right click"
ContextMenu="{StaticResource myContextMenu}"/>
<TextBox Text="Display some controls on right click"
ContextMenu="{StaticResource myContextMenu}"/>
</StackPanel>
获得点击UIElement
在事件处理程序
private void Button_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
StackPanel stackPanel = button.Parent as StackPanel;
ContextMenu contextMenu = stackPanel.Parent as ContextMenu;
UIElement elementWithMenu = contextMenu.PlacementTarget;
}
我想我可以定义像任何其他控件的事件。如果我想在许多控件上使用完全相同的菜单,我可以使用样式,并且我会使用eventArgs获取源代码? –
是的,你可以在很多控件上共享这个'ContextMenu',你也可以添加事件并找到它被点击的控件 –