我正在尝试管理ComboBox的颜色。虽然可以更改背景颜色,但我找不到边框轮廓的属性。
只是画一个方形作为边框在暗主题中行不通,因为有箭头。这让我得出结论,这个边框可能是一个实际的图像文件。
能否替换它?
我还将“BorderColor”更改为与我的用户界面其他部分相匹配:
这是目前的结果:
现在我想要做的是,在暗色主题下仅更改下拉按钮(可能使用叠加的png)。
更新: 我已经能够通过以下代码向自定义控件添加picturebox:
只是画一个方形作为边框在暗主题中行不通,因为有箭头。这让我得出结论,这个边框可能是一个实际的图像文件。
能否替换它?
更新: 我已经实现了@AhmedAbdelhameed的解决方案-现在看起来好多了。但是对于平面风格,我不得不像下面这样调整矩形:
using (var p = new Pen(this.BorderColor, 1))
{
g.DrawRectangle(p, 0, 0, Width - buttonWidth - 1, Height - 1);
}
我还将“BorderColor”更改为与我的用户界面其他部分相匹配:
public CustomComboBox()
{
BorderColor = Color.Gray;
}
这是目前的结果:
![在此输入图片描述](https://istack.dev59.com/6T2nj.webp)
![在此输入图片描述](https://istack.dev59.com/LBuru.webp)
更新: 我已经能够通过以下代码向自定义控件添加picturebox:
using (var g = Graphics.FromHwnd(Handle))
{
using (var p = new Pen(this.BorderColor, 1))
{
g.DrawRectangle(p, 0, 0, Width - buttonWidth - 1, Height - 1);
}
if (Properties.Settings.Default.Theme == "Dark")
{
g.DrawImageUnscaled(Properties.Resources.dropdown, new Point(Width - buttonWidth - 1));
}
}
看起来很棒!有点巧合的是,当我在主题下拉框中更改主题时,暗色下拉按钮甚至会消失,这一点我不理解。
BackColor
的属性。更多信息,请在此处阅读。 - dbvega