我有一个小组System.Windows.Forms.Panel
有财产
BorderStyle="FixedSingle"
使用灰色边框渲染。
我需要:
能够为边框设置颜色和厚度。
我很想知道是否也可以完全隐藏边框。
知道如何解决这个问题吗?
我的控制代码:
OptimizedPanel : Panel
<WindowsFormsHost Name="WinFormsHost">
<wh:OptimizedPanel x:Name="RenderingPanel"
BorderStyle="None" />
</WindowsFormsHost>
答案 0 :(得分:1)
如果你想改变颜色或厚度,我相信你必须设置BorderStyle.None
并自己绘制边框。
如果要隐藏边框,可以使用值BorderStyle.None
,这也是默认值。
另请参阅:http://msdn.microsoft.com/en-us/library/system.windows.forms.panel.borderstyle%28v=vs.110%29.aspx
答案 1 :(得分:1)
我很想知道是否也可以完全隐藏边框。
是的,试试这个:
panel1.BorderStyle = BorderStyle.None;
答案 2 :(得分:1)
您可以创建面板的扩展类并覆盖paint方法。然后,您可以在重新绘制面板时绘制您喜欢的任何边框。
据我所知,默认情况下,面板中没有包含边框颜色的方法。
至于隐藏边框BorderStyle.None
答案 3 :(得分:1)
Windows.Forms.Form.Panel控件不支持边框颜色。因此,您无法直接设置边框颜色。但是你可以使用图形对象绘制自己的边框。
private void pnlPanel_Paint(object sender, PaintEventArgs e)
{
Rectangle r = new Rectangle(0, 0, this.ClientRectangle.Width - 1, this.ClientRectangle.Height - 1);
Pen p = new Pen(Color.Blue, 2);
e.Graphics.DrawRectangle(p, r);
}
别忘了将BorderStyle
属性设置为None
pnlPanel.BorderStyle = BorderStyle.None;