我有一组三个标记为 1、2 和 3 的按钮,用于触摸屏应用程序界面。
当用户单击一个时,它应该被“选中”并且有某种明显的变化表明了这一点。
使用平面按钮样式时,我可以使用边框来执行此操作,但是这似乎不适用于具有默认/3d 样式的按钮。
我注意到可以设置背景色,但这似乎只适用于普通颜色,通常看起来很丑陋。
有没有办法可以添加边框之类的东西或以另一种方式强调“选定”的 3d 样式按钮?是否有更好的控制方法可以很好地与触摸屏界面配合使用?
按钮不能指示“选中”状态,它只能具有焦点。这在触摸屏应用程序中没有用。
你想要的是一个 CheckBox 。它还支持看起来像一个按钮,将其 Appearance 属性设置为 Button。您可以通过修改 FlatStyle 属性来进一步修改它的外观。例如,通过将其设置为 Popup,它会在选中时获得 3D 外观。
好吧,我可以使用以下方法添加插入边框:
class BorderButton : Button
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawRectangle(new Pen(Color.Black, 6), this.DisplayRectangle);
}
}
然而,paint 事件似乎无法在按钮的边界之外绘制,因此使用这种技术不可能一开始就进行绘制。
我遇到了同样的问题,现在总是使用标签。通过这种方式,您可以捕获 on_click 或 mousedown 事件并应用背景颜色或图像,就好像它是一个按钮一样。