2012-12-20 80 views
0

一類Silverlight5如何從XAML引用的事情類:參考從XAML

xmlns:UserControls="clr-namespace:xyz.ClientApp.UserControls" 

public class Thing : ContextMenu, IDisposable 
    { 
     public void Dispose() 
     { 
      MethodInfo infos = typeof(ContextMenu).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance).Where(a => a.Name.Equals("HandleRootVisualMouseMove")).FirstOrDefault(); 

      Delegate handler = Delegate.CreateDelegate(typeof(MouseEventHandler), this, infos); 

      EventInfo info = System.Windows.Application.Current.RootVisual.GetType().GetEvent("MouseMove"); 
      info.RemoveEventHandler(System.Windows.Application.Current.RootVisual, handler); 
     } 
    } 

enter image description here

上午試圖修復一個bug在ContextMenuService here

+0

是不是隻是'用戶控件:Thing'? – McGarnagle

+1

是否有正確的命名空間? –

回答

0

我認爲你很容易混淆連接屬性和對象iation語法。 ContextMenu是ContextMunueService的附加屬性,不能通過Thing類訪問。

我還沒有測試,但下面的代碼應該工作:

<controlsInputToolkit:ContextMenuService.ContextMenu> 
    <UserControls:Thing> 
    <!-- menu items here --> 
    </UserControls:Thing> 
</controlsInputToolkit:ContextMenuService.ContextMenu> 
+0

謝謝丹尼斯..做了一些稍微不同的事情,並手動實施http://silverlight.codeplex.com/workitem/6206 –