2016-12-16 71 views
-1

任何想法如何使用xaml通过形状来滑动文本?在xaml中按形状创建文本

也许我可以重叠文字与圆形边界的大厚度相同的颜色作为背景,但如果背景不是纯色?

这里是我想要的一个例子:

enter image description here

回答

0

我选的方法是使用uiElement.Clip财产。它允许你只用矩形剪辑,所以你需要剪辑几次。

我组合了三个旋转0,30和60度的剪切正方形,并使用一个薄的重叠圆形边框来隐藏十二边形的角落。这里的代码在有人需要的情况下:

  <Ellipse x:Name="Ellipse" Fill="#FF8813B4" Height="85" Margin="0" Width="85" StrokeThickness="0" 
       HorizontalAlignment="Center" VerticalAlignment="Center" /> 
     <Grid Width="84" Height="84" HorizontalAlignment="Center"> 
      <Grid> 
       <Grid> 
        <TextBlock x:Name="Label" Text="Tample" FontSize="70" HorizontalAlignment="Left" VerticalAlignment="Center" 
         FontFamily="Open Sans Semibold" Margin="0,2,0,0" Foreground="#7FFFFFFF" FontWeight="Bold"/> 
        <Grid.Clip> 
         <RectangleGeometry Rect="0,0,84,84"> 
          <RectangleGeometry.Transform> 
           <CompositeTransform Rotation="60" CenterX="42" CenterY="42"/> 
          </RectangleGeometry.Transform> 
         </RectangleGeometry> 
        </Grid.Clip> 
       </Grid>     
       <Grid.Clip> 
         <RectangleGeometry Rect="0,0,84,84"> 
          <RectangleGeometry.Transform> 
           <CompositeTransform Rotation="30" CenterX="42" CenterY="42"/> 
          </RectangleGeometry.Transform> 
         </RectangleGeometry> 
        </Grid.Clip> 
       </Grid> 
       <Grid.Clip> 
        <RectangleGeometry Rect="0,0,84,84"> 
         <RectangleGeometry.Transform> 
          <CompositeTransform Rotation="0" CenterX="42" CenterY="42"/> 
         </RectangleGeometry.Transform> 
        </RectangleGeometry> 
       </Grid.Clip> 
      </Grid> 
     <Ellipse Stroke="#FF8813B4" StrokeThickness="2" Width="87" Height="87" HorizontalAlignment="Center" VerticalAlignment="Center"></Ellipse>