如何在WPF中创建圆角形式?

Shi*_*mmy 32 wpf rounded-corners

我试图使窗口(WPF)的角落圆形,它不起作用,我试图使窗口本身透明,并添加圆角的内部边框,它不起作用.

有任何想法吗?

Cod*_*313 33

你需要将WindowStyle设置为WindowStyle.None,它将删除chrome,然后你可以允许透明度是Window元素的属性,并将背景颜色设置为透明.所有这些都可以作为窗口标记的属性来完成.

WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
Run Code Online (Sandbox Code Playgroud)

要使角变圆,请使用边框并设置cornerRadius属性

  • 你能举例说明边框! (2认同)

Tzw*_*nni 6

我通过Windows.Clip解决了这个问题。

<Window ....
    <Window.Clip>
        <RectangleGeometry Rect="0,0,857,483" RadiusX="25" RadiusY="25"/>
    </Window.Clip>
</Window>
Run Code Online (Sandbox Code Playgroud)

但我认为最好的方法是使用 WindowChrome。您可以相对轻松地解决调整大小问题。我还没有完成对这项技术的理解。所以我现在无法发布工作解决方案。目前这里有一个似乎有用的链接。 MS 文档 ChromeClass


Nir*_*Nir 5

不要使用AllowsTransparency,它速度慢且有问题,请查看此链接,查找“没有 Aero \xe2\x80\x93 的 Office 2007 或者,你要对一切负责”部分:

\n\n

https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/

\n\n

编辑:这篇文章中的一些技术是特定于 Vista 的,但“没有 Aero 的 Office 2007”部分适用于 XP(实际上描述了为 Vista 编写的软件必须在 XP 上使用)。

\n