如何更改面板的BorderStyle?

时间:2014-03-05 08:23:26

标签: c# .net wpf

我有一个小组System.Windows.Forms.Panel

有财产

BorderStyle="FixedSingle"

使用灰色边框渲染。

我需要:

  • 能够为边框设置颜色和厚度。

  • 我很想知道是否也可以完全隐藏边框。

知道如何解决这个问题吗?

我的控制代码:

OptimizedPanel : Panel



 <WindowsFormsHost Name="WinFormsHost">
        <wh:OptimizedPanel x:Name="RenderingPanel"
                           BorderStyle="None"  />
    </WindowsFormsHost>

4 个答案:

答案 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;