Я пытаюсь создать границу с закругленными углами и подсветкой на ее верхней половине. Я использую эллипс с радиальным градиентом, перекрывая верхнюю половину границы, чтобы выделить выделение, но я не могу понять, как предотвратить эллипс, окрашивающий углы границы. Вот скриншот из Kaxaml:Как отрезать рендеринг в пределах закругленной границы?
А вот код 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
, но я должен признаться, что я действительно не понимаю, как его использовать, особенно при преобразовании эллипса для рендеринга. Что бы я ни пытался, эллипс либо полностью исчезает, либо полностью не изменяется.
Любая помощь была бы принята с благодарностью.
Заранее спасибо.
Это научит меня не слишком упрощать мой пример кода. :(Причина, по которой я не устанавливаю радиальный градиент на самой границе, заключается в том, что в моем фактическом приложении граница содержит другие элементы. Затем эллипс сидит над верхней границей и ее границей. Использование радиального градиента как граница фона будет означать, что это * под * содержимое границы. Извините, я не был в этом разбираться. – 2010-11-24 13:50:02