プログラムのカスタム コントロールを作成しています。コントロールのテンプレートには、とりわけ ComboBox があります。これが再現するのと同じくらい簡単なもの:
<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ComboBox />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
このコントロールを右クリックすると、PreviewMouseRightButtonUp イベントが発生しますが、MouseRightButtonUp イベントは発生しません。これは、ComboBox コントロールが独自の PreviewMouseRightButtonUp イベントで e.Handled を true に設定し、他のイベントが発生しないようにするためだと推測されます。ComboBox の Rectangle を交換すると両方のイベントが発生し、カスタム コントロールで Preview イベントで e.Handled を true に設定すると、プレビュー イベントのみが発生するため、推測しています。
私がコントロールを書いているプログラムは、右クリックが発生したときに両方のイベントが発生することを期待していますが、これを変更できるとは思えません。プレビュー イベントを消費しない方法で ComboBox を再作成する必要がありますか、それとも別のトリックがありますか?