这是我在StackOverFlow中的第一个问题,
我有一个文本框,点击时会显示一个上下文菜单,我在上下文菜单中有一些控件(用户控件或..)。
一切都很好,除非鼠标悬停,我的所有控件都会聚焦,背景变为蓝色,非常糟糕, 另一个问题,在上下文菜单中,有一条垂直线,左边是一个Icon位置,如何删除它?
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>
感谢所有人。
答案 0 :(得分:1)
解决“颜色”问题的一种方法。您可以覆盖系统颜色以获得所需的行为。 只需选择您需要覆盖的SystemColor。
<ContextMenu>
<ContextMenu.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/>
</ContextMenu.Resources>
编辑:
我在上下文菜单中使用以下内容将selectioncolor设置为透明,将所选项目设置为绿色前景。
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="DarkGreen"/>