请原谅我的无知 - 我对 WPF 很陌生。
我希望在我的应用程序中实现一个小的视觉效果,以呈现“内部”圆角的外观。有问题的窗口有一个黑色边框,其中封装了几个 UIElement,其中之一是位于窗口底部的 StatusBar。此 StatusBar 具有与窗口边框相匹配的深色背景。状态栏上方是一个内容视图,目前是一个网格——它的背景是半透明的(我认为这是一种约束——你可以通过内容视图看到下面的桌面)。我希望内容视图(由下图中的透明内部区域表示)具有圆角的外观,尽管我希望自己必须创造这种错觉。
(无法发布图片,因为我是潜伏者而不是海报 -请在此处找到图纸)
我的第一种方法是在 StatusBar 的正上方添加一个 Rectangle(填充与边框相同的深色),并为其 OpacityMask 分配一个带圆角的 Border(类似于 Chris Cavanagh 提出的解决方案**)。可悲的是,产生的效果与我试图达到的效果完全相反。
我知道 Clip 属性可以在这种情况下使用,但在我看来,使用任何类型的 Geometry 都将证明是不够的,因为它不会动态调整其所在区域的大小。
编辑:包括我的 XAML:
<Grid Background="{StaticResource ClientBg}" Tag="{Binding OverlayVisible}" Style="{StaticResource mainGridStyle}">
<DockPanel LastChildFill="True">
<!-- Translates to a StackPanel with a Menu and a Button -->
<local:FileMenuView DockPanel.Dock="Top" />
<!-- Translates to a StatusBar -->
<local:StatusView DockPanel.Dock="Bottom" />
<!-- Translates to a Grid -->
<local:ContentView />
</DockPanel>
</Grid>
任何指针都非常受欢迎-如有必要,我准备提供更深入的细节。
**http://www.dotnetkicks.com/wpf/WPF_easy_rounded_corners_for_anything