[英]DropShadowEffect direction follows the RotateTransform of a control
關於我的陰影效果,我需要一些幫助。 我目前正在使用帶陰影的控件進行旋轉。 但是當我旋轉控件時,下拉陰影也會跟隨該方向。 這些是示例圖像:
這是我的控件和陰影的代碼:
<local:CogWheel x:Name="CogWheel2" Width="100" Height="100" GearColor="#FF4D5D" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="105,13,0,0" RenderTransformOrigin="0.5,0.5">
<local:CogWheel.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="100"/>
<TranslateTransform/>
</TransformGroup>
</local:CogWheel.RenderTransform>
<local:CogWheel.Effect>
<DropShadowEffect Color="#FF4D5D" BlurRadius="20" ShadowDepth="12" Direction="280" Opacity="0.70"/>
</local:CogWheel.Effect>
</local:CogWheel>
我想旋轉控件,但保持其陰影方向。 任何幫助,將不勝感激。 謝謝!
編輯:
我自己解決了此問題,方法是將控件旋轉到透明網格,然后將陰影添加到網格中。
我認為您可以將“角度”添加到“陰影效果”方向以保留效果
var rotate = (CogWheel2.RenderTransform as TransformGroup).Children.Where(x => x is RotateTransform).FirstOrDefault() as RotateTransform;
this.shadowEffect.Direction = 280 + rotate.Angle;
在父網格上應用陰影效果可以完成此工作。
要詳細說明Justin CI的答案:將DropShadowEffect.Direction
綁定到RotateTransform.Angle
也可以。 動畫播放時很方便。
<local:CogWheel x:Name="CogWheel2" GearColor="#FF4D5D" RenderTransformOrigin="0.5,0.5">
<local:CogWheel.RenderTransform>
<RotateTransform Angle="100" x:Name="rotation"/>
</local:CogWheel.RenderTransform>
<local:CogWheel.Effect>
<DropShadowEffect Direction="{Binding Angle, ElementName=rotation}" Color="#FF4D5D" />
</local:CogWheel.Effect>
</local:CogWheel>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.