簡體   English   中英

WPF-ContextMenu-如何在鼠標懸停或聚焦時禁用背景更改

[英]WPF-ContextMenu - how to Disable background change on mouse over or focus

這是我在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>

謝謝大家 。

解決“顏色”問題的一種方法。 您可以覆蓋systemcolors以獲取所需的行為。 只需選擇您需要覆蓋的SystemColor。

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

編輯:

我將以下內容用於上下文菜單,以將selectioncolor設置為transparent並將所選項目設置為綠色前景。

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="DarkGreen"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM