WPF中的阴影效应和角半径问题

798qvoo8  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(127)

我有一个窗口,我想在其中应用阴影效果旁边的圆角半径。到目前为止,我正在做这样的事情:

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

但问题是当我放大到结果时,我在右下角看到这个。我该如何解决这个问题。我尝试了许多解决方案,但没有一个对我有效。

toe95027

toe950271#

SizeChanged事件处理程序中设置内部网格的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>

相关问题