2011-08-22 2 views
1

Я хочу иметь холст с рамкой и закругленный угол в правом верхнем углу. То, что я делал до сих пор, это разместить холст внутри границы и в верхнем правом углу. Мне также нужно окружить тот же угол на холсте. Используя клип, я столкнулся с проблемой, когда RectangleGeometry не позволит мне обойти только один угол, как я могу обойти это, и есть ли лучший способ сделать это?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

Время для 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 были белыми, вы можете использовать его вместо дополнительного "маски" границы.

Смежные вопросы