这是我在StackOverflow中的第一个问题,
我有一个文本框,当点击,它显示一个上下文菜单,我有一些控制(用户控制或..)在上下文菜单。
一切都很好,除了在鼠标,我所有的控制得到重点和他们的背景变化为蓝色,它是如此可怕,另一个问题,在上下文菜单中,有一个垂直线,和一个图标的地方在它的左边,我怎么能删除它?
C#代码:
private void textBox1_GotMouseCapture(object sender, MouseEventArgs e)
{
textBox1.ContextMenu.PlacementTarget = textBox1;
textBox1.ContextMenu.IsOpen = true;
textBox1.Focus();
}
字符串
XAML代码:
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,55,0,0"
Name="textBox1" VerticalAlignment="Top"
Width="120" MouseDown="textBox1_MouseDown"
GotMouseCapture="textBox1_GotMouseCapture"
ContextMenuService.HasDropShadow="False"
ContextMenuService.ShowOnDisabled="True"
TextChanged="textBox1_TextChanged">
<TextBox.ContextMenu>
<ContextMenu Name="ctm" Placement="Relative"
Focusable="False" HasDropShadow="False"
VerticalOffset="23" HorizontalOffset="0">
<StackPanel Margin="0" >
<TextBox Text="testing..." Name="testing"></TextBox>
</StackPanel>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
型
感谢所有人。
2条答案
按热度按时间5ssjco0h1#
一种方法来解决你的“颜色”问题.你可以覆盖系统颜色来获得你想要的行为.只需选择你需要覆盖的系统颜色.
字符串
编辑:
我使用下面的内容作为我的contextmenu,将selectioncolor设置为透明,将选中的项目设置为绿色前景。
型
ecbunoof2#
作为blindmei的回答,问题是HighlightBrushKey。要获得其他可能的解决方案,您可以现在查找wpf源代码。对于menuitem,这是
https://github.com/dotnet/wpf/blob/03043efa30c4f13ab630368e9ffa0e9558519f9e/src/Microsoft.DotNet.Wpf/src/Themes/XAML/MenuItem.xaml#L1278
使用以下xaml
字符串
对于你的问题,你可以建立你自己的控制模板,并删除触发器和GlypPanel等。