简体   繁体   中英

WPF Window Drop-Shadow effect has square corners

I've been trying to get this drop shadow effect to work, but I don't know whats wrong.

I've tried giving the same effect to Grid and Border , but they all give the same effect.

例子

<Window x:Class="New_EZexeat.ReturnMessageDialogueBox"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:New_EZexeat"
        mc:Ignorable="d"
        WindowStyle="None" WindowStartupLocation="CenterScreen" AllowsTransparency="True" Background="Transparent"
        Title="ReturnMessageDialogueBox" Height="150" Width="300">
    <Window.Effect>
        <DropShadowEffect Direction="-75" ShadowDepth="2" Opacity="0.8" BlurRadius="25" Color="Black"/>
    </Window.Effect>


    <Grid Background="Transparent">
        <Border Background="White" CornerRadius="20">
            <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock x:Name="itstext"
                           FontSize="15"
                           FontWeight="SemiBold"
                           Margin="0 0 0 10"
                           TextAlignment="Center"><Run Text="Username or Password is incorrect."/><LineBreak/><Run Text=" Please try again"/></TextBlock>

                <Button Content="OK"
                        Style="{StaticResource OrangeButtonTemplate}"
                        FontWeight="SemiBold"
                        FontSize="20"
                        Background="#FFFFD411" 
                        Margin="20 0 20 0"
                        IsCancel="True"
                        FocusVisualStyle="{x:Null}"
                        BorderBrush="{x:Null}" 
                        Height="45"/>
            </StackPanel>
        </Border>

    </Grid>
</Window>

For the drop shadow effect to work one can not apply it to the window, one must apply it to the grid or border. In the below example, it is added to a new border with-in the one given.

在此处输入图片说明

<Border BorderBrush="Transparent" BorderThickness="20" CornerRadius="5"  Background="Transparent">
    <Border BorderBrush="Black" BorderThickness="1" CornerRadius="5" Background="#3BB2EA">
        <Border.Effect>
            <DropShadowEffect Direction="-75" ShadowDepth="2" Opacity="0.8" BlurRadius="25" Color="Black"/>
        </Border.Effect>
        <Border BorderBrush="#55FFFFFF" BorderThickness="1" CornerRadius="5">
            <DockPanel Background="white">
                <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock x:Name="itstext"
                               FontSize="15"
                               FontWeight="SemiBold"
                               Margin="0 0 0 10"
                               TextAlignment="Center"><Run Text="Username or Password is incorrect."/><LineBreak/><Run Text=" Please try again"/></TextBlock>

                    <Button Content="OK"
                            Style="{StaticResource OrangeButtonTemplate}"
                            FontWeight="SemiBold"
                            FontSize="20"
                            Background="#FFFFD411" 
                            Margin="20 0 20 0"
                            IsCancel="True"
                            FocusVisualStyle="{x:Null}"
                            BorderBrush="{x:Null}" 
                            Height="45"/>
                </StackPanel>
            </DockPanel>
        </Border>
    </Border>
</Border>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM