gpt4 book ai didi

wpf - 如何将渲染剪辑到圆角边框内?

转载 作者:行者123 更新时间:2023-12-04 16:20:39 28 4
gpt4 key购买 nike

我正在尝试创建一个带有圆角的边框,并在其上半部分突出显示。我正在使用具有径向渐变的椭圆,与边框的上半部分重叠,以提供高光,但我不知道如何防止椭圆为边框的角着色。这是 Kaxaml 的截图:

ClipToBounds not working

这是 XAML 代码:

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="DarkGray">

<Grid Width="256" Height="256">
<Border CornerRadius="16" Background="Black" Margin="4">
<Border Background="Gray" Margin="32">
<TextBlock Foreground="Black" Text="1" FontFamily="Trebuchet MS" FontSize="96pt"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Border>
<Border CornerRadius="16" ClipToBounds="True">
<Ellipse>
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="3" ScaleY="2" CenterX="128" CenterY="128"/>
<TranslateTransform Y="-235"/>
</TransformGroup>
</Ellipse.RenderTransform>
</Ellipse>
</Border>
<Border CornerRadius="16" BorderThickness="8" BorderBrush="Black"/>
</Grid>
</Page>

如何阻止椭圆阴影影响顶角区域?

我试过玩 OpacityMask ,但我必须承认我并不真正了解如何使用它,尤其是在为渲染而转换椭圆时。无论我尝试什么,椭圆要么完全消失,要么完全不受影响。

任何帮助将不胜感激。

提前致谢。

最佳答案

而不是使用 ClipToBoundsOpacityMask ,我最终使用径向渐变作为附加 Border 的背景。元素。感谢阿尔法鼠标的提示。

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="DarkGray">

<Grid Width="256" Height="256">
<Border CornerRadius="16" Background="Black" Margin="4">
<Border Background="Gray" Margin="32">
<TextBlock Foreground="Black" Text="1" FontFamily="Trebuchet MS" FontSize="96pt"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Border>
<Border CornerRadius="16" Margin="4">
<Border.Background>
<RadialGradientBrush>
<RadialGradientBrush.Transform>
<TransformGroup>
<ScaleTransform ScaleX="3" ScaleY="2" CenterX="128" CenterY="128"/>
<TranslateTransform Y="-235"/>
</TransformGroup>
</RadialGradientBrush.Transform>
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</RadialGradientBrush>
</Border.Background>
</Border>
<Border CornerRadius="16" BorderThickness="8" BorderBrush="Black"/>
</Grid>
</Page>

这是最后的外观:

No more little grey ears on the border

谢谢。

关于wpf - 如何将渲染剪辑到圆角边框内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266215/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com