[英]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.