【问题标题】:WPF Window Drop-Shadow effect has square cornersWPF 窗口阴影效果有方角
【发布时间】:2019-03-28 23:15:59
【问题描述】:

我一直在尝试让这种投影效果发挥作用,但我不知道出了什么问题。

我尝试对GridBorder 赋予相同的效果,但它们都产生相同的效果。

<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>

【问题讨论】:

  • 把阴影放在圆角半径的边框上,而不是Window(窗口是方形的)

标签: c# wpf visual-studio dropshadow


【解决方案1】:

要使投影效果起作用,不能将其应用到窗口,而必须将其应用到网格或边框。在下面的示例中,它被添加到给定边界内的新边界。

<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>

【讨论】:

    猜你喜欢
    • 2012-11-02
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    相关资源
    最近更新 更多