引用XAML中的一个类

时间:2012-12-20 17:58:40

标签: silverlight xaml

在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);
        }
    }

enter image description here

我正在尝试修复ContextMenuService here

中的错误

1 个答案:

答案 0 :(得分:0)

我认为你混淆附加属性和对象实例化语法。 ContextMenu是ContextMunueService的附加属性,不能通过Thing类访问。

我没有对它进行过测试,但是下面的代码应该有效:

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