C# 如何禁用Windows Build 1903中提供的Xaml控件的默认阴影?
因此,Windows build 1903 sdk在某些xaml控件上应用了默认的“阴影”,如列表所示。我在一个项目中使用CommandBar,“查看更多”按钮有一个关联的弹出窗口,但是我发现没有办法禁用它的阴影。此阴影不会显示在任何其他以前的windows版本中。参考: 在微软关于这一点的博客文章中,他们给出了以下代码来从类似弹出的对象中删除阴影,但是他们没有指定任何代码来从其他控件中删除阴影 以下代码中名为“IsDefaultShadowEnabled”的特定属性只能从FlyoutPresenterStyles中访问,我已尝试从其他控件(如GridView、Border)中访问,但在其中找不到它。我尝试将此弹出型按钮与与命令栏关联的弹出型按钮基座连接。但是没有帮助 我添加了命令栏的代码,我正在使用阴影C# 如何禁用Windows Build 1903中提供的Xaml控件的默认阴影?,c#,uwp,uwp-xaml,shadow,dropshadow,C#,Uwp,Uwp Xaml,Shadow,Dropshadow,因此,Windows build 1903 sdk在某些xaml控件上应用了默认的“阴影”,如列表所示。我在一个项目中使用CommandBar,“查看更多”按钮有一个关联的弹出窗口,但是我发现没有办法禁用它的阴影。此阴影不会显示在任何其他以前的windows版本中。参考: 在微软关于这一点的博客文章中,他们给出了以下代码来从类似弹出的对象中删除阴影,但是他们没有指定任何代码来从其他控件中删除阴影 以下代码中名为“IsDefaultShadowEnabled”的特定属性只能从FlyoutPrese
<Flyout>
<Flyout.FlyoutPresenterStyle>
<Style TargetType="FlyoutPresenter">
<Setter Property="IsDefaultShadowEnabled" Value="False" />
</Style>
</Flyout.FlyoutPresenterStyle>
</Flyout>
<CommandBar Background="Yellow" FocusVisualPrimaryThickness="0" FocusVisualSecondaryThickness="0">
<CommandBar.CommandBarOverflowPresenterStyle>
<Style TargetType="CommandBarOverflowPresenter">
<Setter Property="BorderThickness" Value="0"/>
</Style>
</CommandBar.CommandBarOverflowPresenterStyle>
<CommandBar.SecondaryCommands>
<AppBarButton Label="YELLOW!"/>
<AppBarButton Label="YELLOW!"/>
<AppBarButton Label="YELLOW!"/>
</CommandBar.SecondaryCommands>
</CommandBar>
如果没有直接解决方案,你们能告诉我解决影子问题的方法吗?根据@Faywang-MSFT的建议,该问题已在Win UI团队的存储库中注册 @jevansaks先生的回复提到使用SDK构建版本1903作为目标版本,另外将MaxTestedVersion设置为测试应用程序的版本
总之,为了修复阴影,我们需要将building应用程序的目标版本设置为SDK 1903,但是我们可以将MaxTestedVersion设置为我们测试应用程序的版本,例如它可以是1809 我检查了底层实现,命令栏使用弹出式控制器而不是弹出式按钮。您可以尝试修改弹出式按钮样式以删除阴影吗?修改弹出式按钮样式没有帮助,但我用命令栏附加了一个菜单输出,它起到了作用。:)但显然我们不能使用最新的构建版本作为目标版本。。。我无法使用IsDefaultShadowEnabled功能。。。使用MenuFlyout没有任何帮助。xaml团队希望直接与您交谈。因此,我们建议您可以在上以bug的形式打开一个问题,并指定您的问题。我们最终将目标版本更新为1903。并且禁用了CommandBar菜单中的阴影,但是发生了一件有趣的事情,CommandBar菜单中的阴影开始显示不同的边框,当我们单击其他地方时,它不会消失。我们必须用基本网格替换commandbar来解决这个问题。