如何禁用ContentDialog的DropShadow或任何阴影? UWP,XAML

4

我正在使用具有自定义xaml样式的ContentDialog,该ContentDialog应该具有圆角,但是我可以看到矩形阴影...有趣的是,在Windows 1809版本中没有显示阴影,在1903中显示。

我发现当我删除"Container"边框时,阴影消失了,但ContentDialog不再位于页面中央,而是移到左上角。

我还尝试使用Shadow属性,并尝试在DropShadow中包装代码...但这并没有使阴影消失。

enter image description here

我如何禁用或关闭ContentDialog中的阴影?或者,我如何使阴影被圆角化...阴影仍然存在...请帮帮我。


1
请发表您的XAML代码以展示您所做的内容。 - Xie Steven
1
找到了一个相当不正统的解决方案。我很快会更新问题并发布答案。 - Skynet094
1个回答

2
在内容对话框的默认样式中,有一个名为“BackgroundElement”的元素,它是一个边框元素,将其更改为“Grid”将删除阴影,因为阴影应用于边框元素。
然而,这样做会搞乱内容对话框的定位,因为显然UWP框架会根据名为边框的元素来定位/重新定位内容对话框。但是,通过使用网格和一些恶劣的技巧,我们可以解决这个问题,我们可以获取内容对话框的引用(在适当的位置),并像这样设置其边距(只有通过设置边距才能真正移动/重新定位内容对话框:这一点知识来自大量的试验和错误)。以下是使用边距重新定位的代码...已经运行良好。
   double leftmargin = (Window.Current.Bounds.Width / 2.0) - (contentDialogReference.ActualWidth / 2.0);
   double topmargin = (Window.Current.Bounds.Height / 2.0) - (contentDialogReference.ActualHeight / 2.0);
   contentDialogReference.Margin = new Thickness(leftmargin, topmargin, 0, 0);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接