2012-05-11 9 views
1

スタイルのないウィンドウを作成し、カスタムボーダーを追加しました。私は影を落とすために窓が必要です。Wpf - ドロップシャドウが消える

<Border BorderBrush="#000000 "   
        BorderThickness="1,0,1,1" Width="400" 
          Height="400" 
          VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
        CornerRadius="10, 10, 0, 0" 
        Background="Black"> 
         <Border.Effect> 
          <DropShadowEffect Color="Black" Direction="320" 
            ShadowDepth="5" Opacity="1" BlurRadius="5" /> 
         </Border.Effect></Border> 

しかし、私の影が、私はこのような幅と高さを設定すると消える:私は解決策を見つける

ヘルプしてください。私たちはあなたのソリューションの完全な範囲を持っていないので、私は国境があるのControlTemplate内であることを前提としなければならないWindowsの寸法に影のX & Y厚さに

+0

マージン5でもう1つのボーダーを追加し、外枠の太さ= "0" – Lullaby

答えて

0

てみてくださいウィンドウのスタイルに割り当てられます。ルートウィンドウにDropShadowEffectを適用する場合は、それをパッドする必要があります。それ以外の場合は表示されません。 Padding = "10"をBorderに適用すると、それが表示されます。

0

ルートビジュアルには効果を適用しないでください!この場合、それらはすべての子供に視覚的なツリーを適用し、パフォーマンスを低下させる原因となります。 は、次のパターンを使用します。

<Grid x:Name="RootWindowGrid"> 
    <Border x:Name="BorderWithEffect" Margin="5"> 
     <Border.Effect> 
     <DropShadowEffect Color="Black" Direction="320" ShadowDepth="5" Opacity="1" BlurRadius="5" /> 
     </Border.Effect> 
    </Border> 

    <Border x:Name="RootBorder_ForAll_Another_Window_Visuals" Margin="5"/> 
</Grid> 

マージンは効果intensivityに依存します。

関連する問題