2012-09-05 22 views
2

我有以下XAML:Silverlight控件的名字是不具備的代碼隱藏

<controls:ContextMenuService.ContextMenu> 
     <controls:ContextMenu Height="Auto" x:Name="contextMenu"> 
        <controls:MenuItem x:Name="AddMenuItem" Header="Add document" 
             IsEnabled="True" Click="AddMenuItem_Click"> 
        </controls:MenuItem> 
      ... 

而且我看不到文本菜單中的代碼隱藏(編譯錯誤文本菜單‘「名’不存在在當前的情況下「)。 我試圖找到它:

ContextMenu menu = FindName("contextMenu") as ContextMenu; 

但它總是返回空。

我檢查了構建操作 - 它設置爲Page。

我該如何解決?

回答

0

我認爲你必須使用ContextMenuService來獲取對象的ContextMenu。 ContextMenuService提供了返回指定對象的ContextMenu的方法GetContextMenu(DependencyObject)

所以你的情況,你需要寫:

DependencyObject objectWithContextMenu = // Control that has a ContextMenu 
ContextMenu menu = ContextMenuService.GetContextMenu(objectWithContextMenu); 
+0

不幸的是,有一個ContextMenu控制是不可用的代碼隱藏得 – Roux

相關問題