2011-08-24 91 views
1

我想爲WPF項目中的某些控件添加一些上下文菜單。這本身就很容易。我想知道是否有可能在其中有文本框或日期選擇器等控件,很像Access在單擊表格中的單元格時可以通過文本框的值進行過濾。將控件添加到WPF中的上下文菜單

謝謝。

回答

2

你可以把你喜歡的東西放在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; 
} 
+0

我想我可以定義像任何其他控件的事件。如果我想在許多控件上使用完全相同的菜單,我可以使用樣式,並且我會使用eventArgs獲取源代碼? –

+0

是的,你可以在很多控件上共享這個'ContextMenu',你也可以添加事件並找到它被點擊的控件 –

相關問題