【问题标题】:adjust drop shadow size in WPF. shown in the image调整 WPF 中的投影大小。如图所示
【发布时间】:2020-11-17 22:02:32
【问题描述】:

我尝试在 WPF 中调整投影效果的大小。但我没有找到任何答案。

【问题讨论】:

  • 为什么?第二张图片是物理上正确的阴影。在第一页上,阴影应该更靠近底部和右侧,它由ShadowDepth 属性控制。
  • 我认为您应该提供更多信息。右图是一个传统的投影。左边那个不是。只需在蓝色矩形后面放置一个偏移黑色矩形,似乎是一个显而易见的答案,但可能无法满足要求。

标签: wpf xaml layout grid dropshadoweffect


【解决方案1】:

你不能为你的影子设置边距,所以你可以“隐藏”另一个简单的

“真实”边框后面的边框。

将它们包装在一个网格中,将它们放在同一个地方。

在该边框上设置边距,并在其上设置阴影效果。

<Grid>
   <Border Margin="20,20,0,0">
       <Border.Effects>
          <DropShadowEffect />
       </Border.Effects/>
   </Border>
   <Border x:Name="YourOriginalBorder"/>
</Grid>

【讨论】:

  • 尝试给 DropShadowEffect 一些其他参数,使阴影更大,也许有什么东西在隐藏/切割/阻碍它?
  • 谢谢兄弟。你解决了我的问题。但是我有最后一个问题,在这个 菜单中,有两个不同的边框,哪个先执行?我只是复制边框并粘贴到它工作的同一个 中,因为我必须完美地设置 Content Presenter。但我不明白这种包装机制是如何工作的?你能解释一下吗?
  • 2 个边框一个在另一个之上。 Grid 可以有列和行,并且在每个“单元格”中可以放置许多控件。所以在这个答案中,我将 2 个控件放在同一个单元格中,“真实”边框隐藏了“虚拟”边框,只是为了显示阴影。
【解决方案2】:

只需要在o_w的例子中给Border添加Background属性来显示阴影,或者使用其他控件作为例子,例如按钮。

<Grid>
    <Button Content="Button1" Width="150" Height="30">
        <Button.Effect>
            <DropShadowEffect BlurRadius="1" Color="Red" Direction="340" Opacity="10" ShadowDepth="30" RenderingBias="Quality" />
        </Button.Effect>
    </Button>
    <Button Content="Button1" Width="200" Height="40" />
</Grid>

我想发表评论,但我刚刚加入 StackOverflow,我还不能这样做:(。

【讨论】:

  • 其实我想要这个在一个控制模板中。我想将此应用于由我的控件模板自定义的工具提示。主要问题是边框的宽度是{Templatebinding Width}?我可以和你聊天吗?我需要你的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
相关资源
最近更新 更多