バックグラウンド:
標準の WPF アプリケーションでは、TextBox を右クリックすると、[切り取り]、[コピー]、[貼り付け] の 3 つのコマンドを含む ContextMenu が表示されます。アプリケーションのすべての TextBox ContextMenus に Select All コマンドを追加したいと考えています。
問題:
私の標準的なアプローチは、TextBox を対象とし、新しい ContextMenu を提供する Style を作成することです。そうすれば、すべての TextBox コントロールがスタイルを継承し、変更を反映します。
問題は、私のスタイルが TextBox を含むコントロールに継承されないことです。たとえば、DataGridTextColumn セルを編集するときに、TextBox が使用されていることはわかっていますが、スタイルが継承されません。私のアプリケーションで使用されている一部のサードパーティ コントロールについても同じことが言えます。
質問:
DataGridTextColumn のセルのように、スタイルの変更を反映する他の方法はありますか、それともテンプレートの変更に行き詰まっていますか?
補遺:
これはスタイルです:
<Style
TargetType="{x:Type TextBox}"
BasedOn="{StaticResource {x:Type TextBox}}"
>
<Setter
Property="ContextMenu"
>
<Setter.Value>
<ContextMenu>
<MenuItem
Header="Cu_t"
Command="ApplicationCommands.Cut"
InputGestureText="Ctrl+X"
/>
<MenuItem
Header="_Copy"
Command="ApplicationCommands.Copy"
InputGestureText="Ctrl+C"
/>
<MenuItem
Header="_Paste"
Command="ApplicationCommands.Paste"
InputGestureText="Ctrl+V"
/>
<Separator
/>
<MenuItem
Header="Select _All"
Command="ApplicationCommands.SelectAll"
InputGestureText="Ctrl+A"
/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>