我正在更改我的ListView中的SystemColors.HighlightBrushKey
和SystemColors.ControlBrushKey
,它工作正常;但是這個列表視圖在其每個ListViewItem(例如其他ListView,DataGrid)中都包含其他複雜控件,並且此新系統顏色將應用於所有子控件。重置覆蓋的SystemColors
<!-- This resource is added to remove the blue highlighting
in the selected ListView item. -->
<SolidColorBrush
x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent" />
<!-- This resource is added to remove the background highlighting
of the inactive selected ListView item. -->
<SolidColorBrush
x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="Transparent" />
有沒有一種方法可以將此係統顏色重置爲原始的一個控件,該控件是此ListView的子項?
我面臨的實際問題是,這些重寫的系統顏色正在應用到子控件(ListView)的上下文菜單中;這工作正常,但使用Windows經典主題時,ContextMenus使用這些系統顏色,看起來很奇怪。所以我希望如果我可以將SystemColors重置爲原始的,那麼ContextMenu會正常工作。
有沒有其他方法可以解決這個問題?
覆蓋ListViewItem的模板而不是重寫SystemColors。 –
你想禁用MouseOver效果嗎? –
感謝Rohit,這是可能的,但我有另一個ListView控件和DataGrid,它們也需要這種行爲;這是將這種行爲應用於所有人的最簡單方法,也是最容易維護而不會使其更復雜的方法。 – akjoshi