如何从Windows Build 1903中提供的Xaml控件禁用默认的Shadow?

时间:2019-08-01 19:18:35

标签: c# uwp uwp-xaml shadow dropshadow

因此,从列表中可以看出,Windows内部版本1903 sdk已在某些xaml控件上应用了默认的“阴影”。我在项目中使用CommandBar,并且“查看更多”按钮具有关联的Popup,但是我找不到禁用它的阴影的方法。此阴影不会在任何其他以前的Windows版本中显示。参考:https://docs.microsoft.com/en-us/windows/uwp/design/layout/depth-shadow

在有关此问题的Microsoft博客文章中,他们给出了以下代码从类似对象的弹出窗口中删除阴影,但是他们未指定任何代码从其他控件中删除阴影。

以下名为“ IsDefaultShadowEnabled”的代码中的此特定属性只能从FlyoutPresenterStyles访问,我尝试从其他控件(例如GridView,Border)在其中找到它。我尝试将此弹出控件附加到与命令栏关联的flyoutbase上。但没有帮助。

我添加了阴影的命令栏代码。

  <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>

如果没有直接解决方案,你们能告诉我任何解决阴影问题的解决方法吗?

1 个答案:

答案 0 :(得分:0)

在@ Faywang-MSFT的建议下,该问题已在Win UI团队的存储库中注册

先生。 @jevansaks回应提到使用SDK Build版本1903作为目标版本,另外将 MaxTestedVersion 设置为对其应用进行测试的版本。

https://github.com/microsoft/microsoft-ui-xaml/issues/1136

最后,要修复阴影,我们需要将用于构建应用的目标版本设置为SDK 1903,但是我们可以将 MaxTestedVersion 设置为测试应用的版本,例如,可以为1809