Как добавить текст внутри фигуры в XAML - PullRequest
7 голосов
/ 13 марта 2012

Я работаю над Metro App с использованием C ++ и XAML.Я хочу создать форму многоугольника и добавить в нее текст.

Сначала я подумал о том, чтобы определить свой собственный Controltemplate и применить его к Textblock, но, к сожалению, он не понимает TargetType = "TextBlock".

Во-вторых, я подумал о наследовании класса Polygon и посмотрю, смогу ли я там что-нибудь сделать, но этот класс запечатан.

Есть идеи, как этого добиться?

Ответы [ 2 ]

15 голосов
/ 13 марта 2012

В WPF XAML вы можете сделать что-то простое, например:

<Grid Width="60" Height="100">
    <Ellipse Fill="Yellow"/>
    <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="Hello"/>
</Grid>

Чтобы получить текст в центре желтого эллипса.

Я предполагаю, что что-то простое будет работать наWinRT.

0 голосов
/ 08 июля 2016

Вы можете использовать что-то подобное с ContentControl или многими другими элементами управления:

<ContentControl Width="200" Height="100" Content="Something">
    <ContentControl.Template>
        <ControlTemplate>
            <Grid>
                <Ellipse Fill="Red"/>
                <TextBlock Text="{Binding Content,RelativeSource={RelativeSource FindAncestor,AncestorType=ContentControl}}" 
                            TextWrapping="Wrap"
                            VerticalAlignment="Center"
                            HorizontalAlignment="Center"/>
            </Grid>
        </ControlTemplate>
    </ContentControl.Template>
</ContentControl>
...