Silverlight Toolkitには素敵なContextMenuがあり、Textboxなどの複数のコントロールインスタンスで共有できます。共有は、ContextMenuが他のコントロールをホストするコンテナ内で宣言されているために生じることがあります。Silverlight Toolkit ContextMenu:どのコントロールを右クリックしましたか?
<StackPanel>
<TextBox x:Name="box1" Text="{Binding str1}" />
<TextBox x:Name="box2" Text="{Binding str2}" />
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu Name="cm">
<toolkit:MenuItem Name="cmiCut" Header="Cut" />
<toolkit:MenuItem Name="cmiCopy" Header="Copy" />
<toolkit:Separator/>
<toolkit:MenuItem Name="cmiPaste" Header="Paste" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
共有は、ContextMenuService.SetContextMenuを呼び出しても実行できます。
ContextMenuを共有すると、ContextMenu(コンテキストなど)を開くためにどのコントロールを右クリックしたかをイベントハンドラが知ることが非常に役立ちます。誰もこれを行うための効率的な方法を提供することができますか?次のように比較のために、この必要性は、他のプラットフォームで対処されて
:
- WPFののContextMenuはContextMenu.PlacementTarget
- のWinForms'いるContextMenuStripはToolStripItem.Owner.SourceControl に
おかげで、
を持っていますビル