0
我有一个矩形:制作的UIElement仅可见聚光灯下
<Border x:Name="Elem1" BorderThickness="2" Height="100" Width="200" BorderBrush="Red" />
并有Windows.UI.Composition。 射灯与指针togehter移动:
const float LightDistance = 20;
_compositor = Window.Current.Compositor;
_pointLight = _compositor.CreatePointLight();
_pointLight.Color = Colors.White;
_pointLight.Targets.Add(ElementCompositionPreview.GetElementVisual(Elem1));
PointerMoved += (o, e) => {
var point = e.GetCurrentPoint(this).Position;
_pointLight.Offset = new Vector3((float)point.X, (float)point.Y, LightDistance);
};
当存在超过rectagle无光,它保持黑色:
我想的矩形的其余部分是透明的,所以只有开明的部分将是可见的
我试图添加透明AmblientLight,但APLHA通道是我gnored。
我想这可能由SceneLightingEffect
来实现,但如何? :)
你可以使用口罩,而不是聚光灯下,如果它适合你的情况 –
我也试过这个,但没有成功的。不是因为它不可能我们,而是因为,我的有限UWP的knowlegde我不知道如何创建径向渐变面具和移动它 – Liero