UWP: как назначить LayerVisual первым дочерним элементом панели

#c# #uwp #windows-composition-api

#c# #uwp #windows-composition-api

Вопрос:

Я добавляю a LayerVisual к a Panel , вызывая

 LayerVisual layerVisual; // this is created using a Compositor in previous logic
Panel parent; // I get this Panel from my XAML
ElementCompositionPreview.SetElementChildVisual(parent, layerVisual);
  

К сожалению, при использовании ElementCompositionPreview.SetElementChildVisual() у меня возникают две проблемы:

  1. Я могу установить только один LayerVisual одновременно
  2. такой LayerVisual элемент размещается поверх всех других элементов (и я хочу вместо этого использовать его в фоновом режиме)

Поэтому я был бы рад иметь решение, подобное

 parent.Children.Insert(0, layerVisual);
  

но, к сожалению, это layerVisual не UIElement .

Как я могу достичь этого результата?

Комментарии:

1. Я вижу только то, что вы можете добавлять дочерние элементы в layerVisual . Какой эффект вы хотите?

2. Я хочу добавить низкоуровневую тень к элементам, содержащимся в Canvas. По внутренним причинам я не могу использовать DropShadowPanel, предоставляемую UWP Toolkit.

3. Вы проверили эффект Win2D ?

4. Спасибо, Тимо, за подсказку, не мог бы ты быть немного конкретнее, пожалуйста? на какой эффект вы ссылаетесь?

5. Эффект тени .