WPF: существует ли какой-то тег XAML, который ведет себя как элемент HTML span? - PullRequest
2 голосов
/ 14 апреля 2011

Исходя из ASP.NET, этот материал WPF просто сбивает с толку.Все, что я хочу сделать, это поставить красную звездочку рядом с меткой, чтобы указать обязательное поле.Играя с вещами, я обнаружил, что это действительно помогает:

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Label Foreground="Red" Content="*" /><Label Content="Heavy Weight" />
</TextBlock>

Поскольку я только что придумал это, я не уверен, что это академический путь, по которому пойдет опытный разработчик WPF.Кроме того, эта разметка помещает огромное количество пустого пространства между звездочкой и меткой.В HTML элемент span будет отображаться прямо рядом со следующим элементом.К вашему сведению, я пытался поместить метку в метку, но VS2010 продолжал лаять о том, что "свойство 'content' установлено более одного раза".

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 14 апреля 2011

Что-то вроде этого было бы более уместно:

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Span Foreground="Red">*</Span>Heavy Weight
</TextBlock>

Здесь - обзор того, что может входить в контент TextBlock, более конкретно здесь .

2 голосов
/ 14 апреля 2011

еще один способ -

<TextBlock Grid.Row="6" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Run Foreground="Red" Text="*" />
    <Run Text="Heavy Weight" />
</TextBlock>

Кстати, решение Дамаска добавляет больше элементов пользовательского интерфейса.с решением CodeNaked трудно связать данные с текстом.

1 голос
/ 14 апреля 2011

Объяснение состоит в том, что вы фактически помещаете два элемента один за другим.Вам нужно поместить их в контейнер.

Просто пример кода предложения с красной звездочкой, который я недавно сделал:

<StackPanel  Orientation="Horizontal" Margin="5" >
            <TextBlock Text="Display name"/>
            <TextBlock Text="*" Foreground="Red" FontWeight="Bold" />
            <TextBlock Text=":"/>
        </StackPanel>

Там все находится в StackPanel, поэтому свойство'content' будет фактически установлен один раз (если вы не укажете групповую панель, такую ​​как эта, вам нужно будет добавить только один элемент)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...