2011-11-09 81 views
0

我已經制作了以下XAML路徑,但想要將文本'Back'添加到它。XAML路徑 - 添加文本

enter image description here

這是我如何將它...

<Path Style="{StaticResource BackButton}"> 

    </Path> 

然而,當我添加路徑內的任何內容,我得到消息

The type 'Path' does not support direct content. 

任何提示嗎?

編輯 - 這是風格

<Style x:Key="BackButton" TargetType="{x:Type Path}"> 
     <Setter Property="Data" Value="F1 M 639.667,236.467L 645.092,236.467L 725.566,236.467L 725.566,253.513L 645.092,253.513L 639.673,253.513L 619.787,244.99L 639.667,236.467 Z " /> 
     <Setter Property="Height" Value="30" /> 
     <Setter Property="MinWidth" Value="100" /> 
     <Setter Property="Fill" Value="#FFFFFFFF" /> 
     <Setter Property="StrokeThickness" Value="1" /> 
     <Setter Property="Stroke" Value="#FF999B9C" /> 
     <Setter Property="Stretch" Value="Fill" /> 
     <Setter Property="Cursor" Value="Hand" /> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="true"> 
       <Setter Property="Fill" Value="#FFEEEEEE" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

回答

3

您可以將兩者的形狀和TextBlock一個Canvas內,並放置在形狀的頂部的文本。

例如:

<Canvas> 
    <Path Style="{StaticResource BackButton}"/> 
    <TextBlock Text="Back" Canvas.Top="0" Canvas.Left="25" FontSize="20"/> 
</Canvas> 

會給你:

enter image description here

您也可以只使用一個Grid作爲容器和TextBlockPanel.ZIndex屬性更改爲更高的值:

<Grid>   
     <Path Style="{StaticResource BackButton}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"/>   
     <TextBlock Text="Back" FontSize="20" Panel.ZIndex="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>      
    </Grid> 

查看this tutorial瞭解更多詳情。