none
怎么绘制窗体的边框? RRS feed

  • 问题

  • 我把窗体的FormborderStyle设为了None,想给窗体绘制个黑色边框,四个角是弧形,按照网上说的重写paint后边框会被窗体里的控件遮住,据说是由于窗体里设置FILL了,客户区的大小不一样了。

    有人说需要重写WndProc,用API函数SystemParametersInfo获取Windows工作区的大小,本人新手,求具体代码学习学习。

    2012年5月24日 2:05

答案

  • Hi Lacuz,

    欢迎来到C#论坛。

    你可以参考下面这个例子。

    Google Talk styled Windows Form

    http://www.codeproject.com/Articles/14054/Google-Talk-styled-Windows-Form

    周末愉快。


    Bob Shen [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月25日 6:47
    版主
  • 你好!

    上面的效果在 WPF 中更容易实现,建议使用 WPF。如下面的示例:

    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Height="350" Width="525" Background="Transparent" WindowStyle="None" AllowsTransparency="True">
        <!--CornerRadius 为圆角参数-->
        <Border CornerRadius="5" >
            <Border.Effect>
                <!--DropShadowEffect 为阴影-->
                <DropShadowEffect ShadowDepth="0" BlurRadius="15" Opacity="0.9"/>
            </Border.Effect>
            <Grid Background="White" Margin="15"></Grid>
        </Border>
    </Window>


    知识改变命运,奋斗成就人生!


    2012年5月25日 11:34
    版主

全部回复