簡體   English   中英

WPF中的DropShadowEffect和CornerRadius問題

[英]DropShadowEffect and CornerRadius Problem in WPF

我有一個 Window,我想在圓角半徑旁邊應用陰影效果。 到目前為止,我正在做這樣的事情:

 <Grid Margin="10" x:Name="MainGrid">
    <Grid.OpacityMask>
        <VisualBrush Visual="{Binding ElementName=MaskBorder}"/>
    </Grid.OpacityMask>

    <Border x:Name="MaskBorder" Background="#EEF0F8" CornerRadius="10" >
        <Border.Effect>
            <DropShadowEffect Color="Gray" Opacity=".50"  ShadowDepth="10" />
        </Border.Effect>
    </Border>

    <Grid x:Name="ContentGrid">
        
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        
        <TextBlock Grid.Row="0" Background="Red"/>

        <TextBlock Grid.Row="1" Background="Blue"/>
    </Grid>

</Grid>

這個

但問題是當我放大到結果時,我在右下角看到了這個。 我該如何解決這個問題。 我嘗試了很多解決方案,但對我沒有任何幫助。

在此處輸入圖像描述

SizeChanged事件處理程序中設置內部 Grid 的Clip屬性:

private void ContentGrid_SizeChanged(object sender, SizeChangedEventArgs e)
{
    ContentGrid.Clip = new RectangleGeometry(new Rect(e.NewSize), 10, 10);
}

XAML:

<Grid Margin="10" x:Name="MainGrid">
    <Grid.Effect>
        <DropShadowEffect Color="Gray" Opacity=".50" ShadowDepth="10" />
    </Grid.Effect>

    <Grid x:Name="ContentGrid" SizeChanged="ContentGrid_SizeChanged">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Background="Red"/>
        <TextBlock Grid.Row="1" Background="Blue"/>
    </Grid>
</Grid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM