任意の入れ子を持つ他の要素で構成される不規則な形状の要素があるとします。
<Window.Resources>
<RadialGradientBrush x:Key="brush">
<GradientStop Color="Black" Offset="0" />
<GradientStop Color="White" Offset="1" />
</RadialGradientBrush>
</Window.Resources>
<StackPanel Name="element">
<StackPanel.Effect>
<DropShadowEffect ShadowDepth="0" BlurRadius="10" />
</StackPanel.Effect>
<Rectangle Name="child1" Height="100" Margin="10" Stroke="Black" Fill="{StaticResource brush}" />
<Grid>
<Rectangle Name="child2" Height="100" Margin="10" Stroke="Black" Fill="{StaticResource brush}" />
</Grid>
</StackPanel>
すべての部分はインタラクティブです(つまり、子供が実際のコントロールになることができます)。
子供の背景を、すべての子供にまたがる単一の放射状グラデーションで塗りつぶすにはどうすればよいですか(サイズがに設定されているように見えるはずですelement
)。
更新:StackPanelには、子の周りに描画する必要のあるシャドウがあります。
element
考えられる解決策の1つは、適切な変換を使用して、半径と原点/中心をプロパティにバインドしてグラデーションを生成することですchild
が、このようなアプローチはかなり複雑でコストがかかります。