【发布时间】:2019-01-05 21:10:22
【问题描述】:
我正在向 Xamarin.UWP 项目添加阴影(但问题并不是 Xamarin 特定的,而是一般的 UWP):
bool IsShadowSupported => ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 3); // SDK >= 14393
if (IsShadowSupported) {
var compositor = ElementCompositionPreview.GetElementVisual(Control).Compositor;
dropShadow = compositor.CreateDropShadow();
if (Control is Windows.UI.Xaml.Controls.TextBlock textBlock)
dropShadow.Mask = textBlock.GetAlphaMask();
shadowVisual = compositor.CreateSpriteVisual();
shadowVisual.Shadow = dropShadow;
ElementCompositionPreview.SetElementChildVisual(Control, shadowVisual);
...
dropShadow.Offset = new Vector3((float)Shadow.GetDistanceX(Element), (float)Shadow.GetDistanceY(Element), -5f);
}
它运行并出现阴影——但在文本上方,而不是在文本下方。起初我认为这将由偏移量的 Z 坐标决定,但没有负值、正值或零值会改变任何东西。影子是这样的:
这本身并没有什么不好的影响,但它不是所要求的:白色文本和其下方的深灰色阴影。
【问题讨论】:
标签: xamarin uwp xamarin.uwp