リソースディクショナリがあり、その中にコンテキストメニューがあります。
<ResourceDictionary x:Class="MyApp.Components.MyContextMenu"
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:MyApp"
                    xmlns:components="clr-namespace:MyApp.Components">
    <ContextMenu ContextMenuOpening="OnContextMenuOpening">
リソースディクショナリXAMLには、次のコードがあります。
using System;
using System.Windows;
using System.Windows.Controls;
namespace MyApp.Components
{
    public partial class MyContextMenu : ResourceDictionary
    {
        public MyContextMenu()
        {
            InitializeComponent();
        }  
        void OnContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            Console.WriteLine("here i am!");
        }
    }
}
ログが表示されていません。イベントが発生しない、または適切な場所に到達しないのはなぜだろうか。このリソースディクショナリ内にコンテキストメニューをラップしたために問題が発生するのでしょうか。
更新:興味深いことに、分離コード関数を削除すると、コンパイル中にエラーが発生します。
'ContextMenu_OnContextMenuOpening'の定義が含まれておらず、タイプ'MyApp.Components.MyContextMenu'の最初の引数を受け入れる拡張メソッド'ContextMenu_OnContextMenuOpening'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
更新2:両方のように見え、出力Console.WriteLineをDebug.WriteLine生成しますが、「ランダムに」のみ、特にアイテムの下部近くをクリックした場合にのみ発生します。ある種の衝突検出が機能していない可能性がありますか?