在Silverlight5中如何从XAML引用Thing类:
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);
}
}
我正在尝试修复ContextMenuService here
中的错误答案 0 :(得分:0)
我认为你混淆附加属性和对象实例化语法。 ContextMenu是ContextMunueService的附加属性,不能通过Thing类访问。
我没有对它进行过测试,但是下面的代码应该有效:
<controlsInputToolkit:ContextMenuService.ContextMenu>
<UserControls:Thing>
<!-- menu items here -->
</UserControls:Thing>
</controlsInputToolkit:ContextMenuService.ContextMenu>