Прямоугольная геометрия с одним закругленным углом - PullRequest
1 голос
/ 22 августа 2011

Я хочу иметь холст с рамкой и закругленным углом в правом верхнем углу.То, что я сделал до сих пор, это поместил холст в рамку и повернул за верхний правый угол.Мне также нужно закругить тот же угол на холсте.Используя клип, я столкнулся с проблемой, когда RectangleGeometry не позволяет мне обогнуть только один угол, как я могу обойти это и есть ли лучший способ сделать это?

<Border Name="uiBorder" Background="Black" BorderBrush="White"
    BorderThickness="1, 2, 1, 1" CornerRadius="0, 4, 0, 0">
    <Canvas Background="Gray" Name="uiCanvas" Margin="0, 0, 0, 0">
        <Canvas.Clip>
            <RectangleGeometry RadiusX="4" RadiusY="4">
                <RectangleGeometry.Rect>
                    <MultiBinding Converter="{StaticResource convertor}">
                        <Binding ElementName="uiBorder" Path="ActualWidth" />
                        <Binding ElementName="uiBorder" Path="ActualHeight"/>
                    </MultiBinding>
                </RectangleGeometry.Rect>
            </RectangleGeometry>
        </Canvas.Clip>  
        <Image Name="uiImage" />
    </Canvas>
</Border>

1 Ответ

1 голос
/ 12 сентября 2011

Время для некоторого XAML WUlululu:

<Grid>
    <Border Name="mask" Background="White" CornerRadius="0, 4, 500, 0"/>
    <Border Name="uiBorder" Background="Black" BorderBrush="White" BorderThickness="1, 2, 1, 1" CornerRadius="0, 4, 500, 0">
        <Canvas Background="Gray" Name="uiCanvas" Margin="0, 0, 0, 0">
            <Canvas.OpacityMask>
                <VisualBrush Visual="{Binding ElementName=mask}"/>
              </Canvas.OpacityMask>
            <Image Name="uiImage" />
        </Canvas>
    </Border>
</Grid>

Если бы фон uiBorder был белым, вы могли бы использовать его вместо дополнительной границы "mask".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...