В настоящее время я делаю что-то в WPF, который имеет границу, которая содержит сетку и другие средства управления. Проблема, с которой я сталкиваюсь, является этим каждый раз, когда я установил Границу. Свойство Effect к падающей тени производит каждое управление, содержавшееся в границе, теперь имеет падающую тень. Существует ли способ установить тень только на границу и не каждое управление, содержавшееся в границе?
Вот короткий пример моего кода:
<Grid>
<Border Margin="68,67,60,67" BorderBrush="Black" BorderThickness="1" CornerRadius="10">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
<Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" />
</Border>
</Grid>
Два варианта:
Вариант 1: Добавить элемент границы с эффектом на него как родственный элемент элемента границы / прямоугольника дерево у вас есть. Примерно так:
<Grid>
<Border Margin="68,67,60,67"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="10">
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
</Border>
<Border Margin="68,67,60,67"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="10">
<Rectangle Fill="White"
Stroke="Black"
Margin="37,89,118,98">
</Rectangle>
</Border>
</Grid>
Вариант 2: Поместите прямоугольник как родственный элемент граничного элемента следующим образом:
<Grid>
<Border Margin="68,67,60,67"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="10">
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
</Border>
<Rectangle Fill="White"
Stroke="Black"
Margin="37,89,118,98">
</Rectangle>
</Grid>
ПРИМЕЧАНИЕ: Вам нужно будет настроить макет во втором решении, чтобы прямоугольник располагался там, где вы хотите