2016-12-16 2 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> 
Смежные вопросы