WPF-ContextMenu - как отключить изменение фона при наведении мыши или фокусировке - PullRequest
0 голосов
/ 27 июня 2011

это мой первый вопрос в 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>

спасибо всем.

1 Ответ

1 голос
/ 27 июня 2011

один из способов решить вашу «цветную» проблему. Вы можете переопределить системные цвета, чтобы получить желаемое поведение. просто выберите SystemColor, который нужно переопределить.

<ContextMenu>
   <ContextMenu.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue"/>
   </ContextMenu.Resources>

EDIT:

Я использую следующее для моего контекстного меню, чтобы установить цвет выделения прозрачным, а выделенный элемент - зеленым на переднем плане.

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="DarkGreen"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...