0

这个问题是相当特定于 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 来绘制链接。

4

1 回答 1

1

NavBar 是一个真正的定制痛苦......主要是因为它旨在为所有导航项提供一个共同的外观(风格警察,不是我的想法)。您应该选择一种最适合您的 Gui 的皮肤样式(了解皮肤/外观系统值得花时间)。

然后使用 NavBar 控件的 CustomDrawXXX 事件来满足任何自定义绘画需求:)

您还可以使用 DevX 皮肤设计器并仅为 NavBar 创建一个皮肤。

于 2010-05-18T09:44:38.737 回答