- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在合成中使用投影时,我收到了不良效果。要重现此问题,请按照下列步骤操作:
第 1 步:创建一个新的 UWP 项目并定位 Windows 10 Fall Creators Update(10.0;Build 16299)
第 2 步:将以下内容复制到 MainPage.xaml
<Page x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
<Canvas x:Name="_shadow" Width="500" Height="500" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<Canvas x:Name="_shadowSource" Width="500" Height="500" VerticalAlignment="Top" HorizontalAlignment="Left">
<Ellipse Width="50" Height="50" Fill="DarkOrange" Canvas.Top="50" Canvas.Left="50"/>
<Ellipse Width="50" Height="50" Fill="Aquamarine" Canvas.Top="100" Canvas.Left="100"/>
<Ellipse Width="50" Height="50" Fill="Crimson" Canvas.Top="150" Canvas.Left="150"/>
<Ellipse Width="50" Height="50" Fill="BlueViolet" Canvas.Top="200" Canvas.Left="200"/>
<Ellipse Width="50" Height="50" Fill="DarkGreen" Canvas.Top="250" Canvas.Left="250"/>
<Ellipse Width="50" Height="50" Fill="Gold" Canvas.Top="300" Canvas.Left="300"/>
<Ellipse Width="50" Height="50" Fill="MediumAquamarine" Canvas.Top="350" Canvas.Left="350"/>
<Ellipse Width="50" Height="50" Fill="Violet" Canvas.Top="400" Canvas.Left="400"/>
<Ellipse Width="50" Height="50" Fill="LightSeaGreen" Canvas.Top="450" Canvas.Left="450"/>
</Canvas>
</Grid>
</Page>
第 3 步:将以下内容复制到 MainPage.xaml.cs
using System.Numerics;
using Windows.UI.Composition;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Hosting;
namespace App1
{
public sealed partial class MainPage
{
public MainPage()
{
InitializeComponent();
var compositor = Window.Current.Compositor;
var shadow = compositor.CreateDropShadow();
var layer = compositor.CreateLayerVisual();
shadow.SourcePolicy = CompositionDropShadowSourcePolicy.InheritFromVisualContent;
layer.Shadow = shadow;
layer.Size = new Vector2(500, 500);
var visual = ElementCompositionPreview.GetElementVisual(_shadowSource);
layer.Children.InsertAtBottom(visual);
ElementCompositionPreview.SetElementChildVisual(_shadow, layer);
}
}
}
_shadowSource
的内容被移动到阴影设置为 InheritFromVisualContent
的新层。当应用加载时,您会看到阴影渲染良好,但调整应用大小会产生视觉故障。
下面是注释行 //layer.Shadow = shadow;
时发生的情况
这里发生了什么?为什么阴影会导致这种情况?
最佳答案
当您的窗口高度小于 500 时,_shadowSource
高度仍为 500,因为您的 XAML 中有 Width="500"Height="500"
。所以它被剪掉了,只有上半部分是可见的。
但是您将阴影添加到另一个名为 _shadow
的元素中。这个没有固定大小,所以它会调整到你窗口的大小,即不会发生裁剪。这就是为什么你的圆圈会扭曲成椭圆形,并且你会在窗口的下部看到这些令人讨厌的伪影 - 如果你的阴影布局正确,图层的这些部分将被剪掉并且不可见。
关于c# - 如何解决 UWP Composition 中这个奇怪的 DropShadow 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48597705/
现在如果我点击按钮 A,按钮 B 会显示 DropShadow 效果: Private Sub ButtonA_Click(ByVal sender As System.Object, ByVal
我有一个圆 Angular 矩形,我正在尝试对其应用 1px 模糊、1px 垂直偏移投影。我的问题是底部的阴影看起来比侧面的阴影厚得多。有没有办法纠正这个问题,使底部阴影与侧面的宽度相同?我想过使用
完成了一个在我的 CSS 中使用投影的网站。我利用在线工具生成语法 ( http://css3generator.com/ ) 然后在拼图上验证我的网站时,我反复收到关于阴影的验证错误。我做了一些研究
我有一个 WindowStyle 设置为无的 WPF 窗口。有什么方法可以强制此窗口投下阴影(就像 WindowStyle 不是 none 时得到的那样)?我不想将 AllowTransparency
我正在使用 创建自定义窗口表单混合 . (通过设置 AllowTransparency 到 True ) 我已经完成了设计,效果很好。现在我想给它添加阴影效果。 ( DropShadowEffect
我有一个 UWP 应用程序,我应该首先指出它使用很少的 XAML。这些 View 是根据从 API 接收到的 JSON 对象构建的。这意味着绝大多数事情都是在 C# 中完成的,因此给我的问题增加了一点
在我正在 JavaFX 中开发的游戏中,我有带有 Label 的卡片( DropShadow s) s。卡片可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我尝试过使用Node#setCache(b
有没有人试过用 python wand 创建阴影?我浏览了这个文档,找不到 dropshadow 属性。 http://docs.wand-py.org/en/0.4.1/wand/drawing.h
我有一个带有自定义窗口边框的 WPF 应用程序 (.NET Framework 4)。我使用 WPF Shell Integration Library 禁用了玻璃边框, 并绘制我自己的边框。但是,我
我正在尝试在以编程方式添加的 UITableView 上设置投影。 框架高度被设置为屏幕的特定百分比。所以我想在 tableview 本身上设置一个阴影。 我尝试执行以下操作: tableview_r
我试图用 BackDropFilter 做一些像堆栈中的两个图像(其中一个显然用黑色填充)。但结果模糊了堆栈下面的所有内容(甚至在图像的 alpha 区域)。我已经搜索过这种效果,但还没有找到答案。如
使用 JavaFX,我尝试将文本绘制到 Canvas 上,并将投影和反射效果链接在一起。 以下代码将显示反射的红色文本,然后将投影应用于原始文本和反射文本。 Canvas canvas = new C
我一直在整个互联网上搜索这个,但是对于我看到的大多数用 CSS 回答的问题,人们只是给出了代码而没有解释它们。 -fx-effect: dropshadow(gaussian, rgba(0, 0,
似乎无法让 jquery.dropshadow.js 在正确的选择器上工作。我试图选择 id,但我无法让它工作。我也试过这门课(见下文)。 头 window.onload = functi
Short Version: 目标:在 C# 中的无边界 WinForm 中深沉、黑暗的 Windows 7 阴影 已知的现有解决方案 1: 使用 CreateParams 的简单 XP 风格投影。
我有以下模仿 facebook 的菜单样式布局。我想在左侧有一个阴影,如下所示,但是我使用的带有图层阴影的代码使应用程序变得迟缓。我一直无法找到一个好的替代解决方案。有没有人有创建不影响应用程序性能的
这有点让我发疯。将 DropShadowEffect 添加到按钮。在 IDE 中它看起来像这样: 第二个按钮供引用,没有DropShadowEffect。如您所见,接下来没有区别。然后我构建项目,当它
我目前正在尝试在一些填充路径上使用一些不同的阴影来创建多级发光效果。 但是,当尝试恢复上下文时,它不遵循恢复函数,而是将最后一个 dropshadow 的 ShadowColor 和 ShadowBl
我正在制作一个绘画程序,但用户制作的绘图周围有一个 DropShadow 。当它们删除时,它也会删除 DropShadow。如果我尝试重新应用 DropShadow (使其围绕绘图的新边界),它会起作
在合成中使用投影时,我收到了不良效果。要重现此问题,请按照下列步骤操作: 第 1 步:创建一个新的 UWP 项目并定位 Windows 10 Fall Creators Update(10.0;Bui
我是一名优秀的程序员,十分优秀!