【问题标题】:Changing the background color of Ultra Win Grid更改 Ultra Win Grid 的背景颜色
【发布时间】:2015-06-29 13:31:00
【问题描述】:

我想改变网格背景的颜色。

我尝试的是

MyGrid.DisplayLayout.Appearance.BackColor = Color.White;

但它不起作用,它保持与以前相同的颜色。 我已经检查了调试器并且对象在该属性上具有正确的值,问题是由于某种原因没有正确绘制网格。

我还尝试调用 ResetDisplayLayout() 函数,以确认正在绘制的颜色是否为默认颜色。

提前致谢。

【问题讨论】:

    标签: infragistics windows-forms-designer ultrawingrid


    【解决方案1】:

    在您的网格的属性下,为 InitializeLayout 创建一个事件并将其放在那里:

        private void MyGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e)
        {
            MyGrid.DisplayLayout.Appearance.BackColor = Color.White;
        }
    

    【讨论】:

    • 这不起作用。仍然显示浅灰色。
    • uhhhh,有些不对劲。那应该行得通。如果您调试并在该行上放置一个断点,它会到达吗?
    • 是的,并且我一直检查属性 backcolor 始终具有此值。我添加了一些我今天收集的信息;如果我做一个打印屏幕,那么在我拥有的两个监视器中生成的图像中的网格都是白色的。此外,在使用 windows 窗体时,在一个显示器上明显不同(它的浅灰色),在另一台显示器上,相同的网格几乎是白色的,我必须侧身观察显示器以发现颜色的差异(网格颜色之间和白色的背景颜色)。您知道是什么导致了这种行为吗?
    • 这听起来像是显示器或显卡问题。将颜色更改为像绿色这样对比度更高的颜色会有所不同吗?你怎么做的打印屏幕?是屏幕还是您的应用程序窗口?
    • 如果它不起作用,它可能取决于一个名为“ResolutionOrder”的标志。尝试使用 AppStylist 编辑网格设置并将 ResolutionOrder 更改为“ControlThenApplication”。
    【解决方案2】:

    尝试以下方法之一:

    1) 在您的网格属性中将 UseAppStyling 设置为 false 2) 向 DisplayLayout.Appearances 集合添加新外观,然后在代码中设置网格以使用该外观

    选项二是最好的选择,否则您将失去任何其他标准设置,这可能会使该网格看起来与您项目中的其他网格不同。

    您在使用样式库吗?我们是,我需要执行上述操作之一以使系统覆盖该库中定义的默认样式。即使您不是,也很可能有一个默认样式库在起作用。

    【讨论】:

    • 是的!正是我的问题。我有一个样式库,但我不想停止使用它,我需要使用应用程序样式,否则网格看起来很糟糕。我尝试了选项 2,但没有奏效。我需要在 displaylayout.override 中覆盖的确切属性是什么?
    • 好的,你需要进入 DisplayLayout 中的 Appearances 集合,并使用你需要的设置添加一个新外观(我只是将背景颜色设置为随机颜色)。接下来选择“外观”属性,您应该能够从下拉列表中选择您的外观。我发现我需要从网格的自定义设置对话框中执行此操作,它在属性窗口中不起作用。应该就是这样
    猜你喜欢
    • 2015-01-16
    • 2013-08-08
    • 1970-01-01
    • 2012-04-21
    • 2017-08-11
    • 2015-10-24
    相关资源
    最近更新 更多