2011-08-22 156 views
1

我想在右上角有一个边框和圆角的画布。到目前为止,我所做的是将画布放在边框内并围绕右上角。我还需要在画布上围绕同一个角落。使用剪辑我遇到了一个问题,在这个问题中,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的背景是白色的,你可以用它代替了额外的 “面具” 的边界。