背景:
在标准 WPF 应用程序中,右键单击 TextBox 会显示一个包含三个命令的 ContextMenu:剪切、复制和粘贴。我的愿望是向我的应用程序中的所有 TextBox ContextMenus 添加一个全选命令。
问题:
我的标准方法是创建一个以 TextBox 为目标并提供新 ContextMenu 的样式。这样,所有 TextBox 控件都会继承样式并接受更改。
问题是我的样式没有被包含 TextBoxes 的控件继承。例如,在编辑 DataGridTextColumn 单元格时,我知道使用了 TextBox,但它不继承我的样式。我的应用程序使用的一些第 3 方控件也是如此。
问题:
是否有其他方法可以让控件(例如 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>