0

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のバグを修正しようとしています

4

1 に答える 1

0

添付プロパティとオブジェクトインスタンス化構文を混同していると思います。ContextMenuはContextMunueServiceの添付プロパティであり、Thingクラスからアクセスすることはできません。

私はそれをテストしていませんが、次のコードが機能するはずです:

<controlsInputToolkit:ContextMenuService.ContextMenu>
  <UserControls:Thing>
    <!-- menu items here -->
  </UserControls:Thing>
</controlsInputToolkit:ContextMenuService.ContextMenu>
于 2012-12-20T22:26:10.177 に答える