这个问题是相当特定于 DevExpress 的。
我在 WinForms 应用程序中使用带有标准“SkinExplorerBarView”的 NavBar 控件,并希望更改所选导航链接的外观。
我更改了控件的“ItemPressed”和“ItemActive”外观的背景颜色,以及每个项目的“Pressed”外观,但这些都对我单击它们时链接的外观没有任何影响。
我还尝试将控件的 LookAndFeel.UseDefaultLookAndFeel 属性设置为 False,但这也无济于事。
按照 Rusty 的建议,然后我尝试实现 CustomDrawLink 事件,但仍然没有成功。(有趣的是,在选择了一个链接后,它的状态不是“已选择”而是“已按下”,所以我使用了它):
private void nbcNavigation_CustomDrawLink(object sender,
DevExpress.XtraNavBar.ViewInfo.CustomDrawNavBarElementEventArgs e)
{
if (e.ObjectInfo.State == DevExpress.Utils.Drawing.ObjectState.Pressed)
{
e.Appearance.BackColor = Color.FromArgb(192, 192, 255);
}
}
我找到了一个使用 CustomDrawLink 的例子,但是所有的绘图都是手工绘制的,这非常痛苦和矫枉过正。我希望 DevExpress“引擎”通过使用另一个 BackColor 来绘制链接。