2010-04-11 8 views
0

У меня есть пользовательский контроль, MBControl. Вот код:UserControl Shadow

<my:MBControl Name="MBControl" HorizontalAlignment="Center" VerticalAlignment="Center"> 
       <my:MBControl.BitmapEffect> 
       <DropShadowBitmapEffect Color="Black" Direction="315" 
         Softness="0.5" ShadowDepth="10" Opacity="1" /> 
       </my:MBControl.BitmapEffect> 
</my:MBControl> 

Проблема с кодом кажется, что тень применяется ко всем дочерним элементам моего пользовательского элемента управления. Или, возможно, он падает как внутри, так и снаружи - контрольная поверхность темнее, чем без тени.

Как я могу это исправить? Я хочу, чтобы тень отбрасывалась только снаружи и не влияла на поверхность управления.

ОБНОВЛЕНИЕ: У меня это есть! Этот эффект является результатом прозрачности контроля пользователя. Тень имеет форму прямоугольника (например, форма моего пользовательского элемента управления). То, что я действительно хочу, это тень с вычитаемой центральной областью. Эта область должна быть пересечением текущей формы и формы управления пользователем.

+1

Это немного трудно сказать, не видя XAML вашего контроля. Вы уверены, что ваш контроль имеет непрозрачный фон? Вы можете легко добавить его, создав в своем элементе «Grid» верхнего уровня и добавив цветной «Прямоугольник» в качестве одного из детей. – Heinzi

ответ

1

Установка непрозрачный цвет фона должно хватить:

<my:MBControl ... Background="White"> 
    ... 
</my:MBControl>