2010-11-11 6 views
0

Ive заметил, что размещение TextBlocks внутри другого TextBlock автоматически дает им промежуток между ними. Я хотел бы использовать это поведение для пользовательского элемента ItemsControl. Я хочу, чтобы содержимое в этом ItemsControl автоматически получало определенное количество пикселей между ними, но только между ними, а не после последнего элемента или до первого.WPF: Mimicing TextBlock авто-интервал между контентом

(Edit)

<TextBlock> 
    <TextBlock Text="A" /> 
    <TextBlock Text="B" /> 
    <TextBlock Text="C" /> 
</TextBlock> 

givese: "ABC", а не "ABC"

<ItemsControl> 
    <Button Content="A" /> 
    <Button Content="B" /> 
    <Button Content="C" /> 
</ItemsControl> 

дает три плотно упакованные кнопки, но я хочу, запас вокруг кнопки B, то есть расстояние между каждым или что-то внутри этого элемента ItemsControl. Я не хочу вручную устанавливать поля.

+0

Не совсем понятно, что вам нужно. Что вы понимаете под пользовательским элементом ItemsControl? Как это связано с TextBlocks? Вы собираетесь помещать TextBlocks внутри ItemsControl? Или просто какой-нибудь объект? –

ответ

1

Я нашел решение для этого сам. Хитрость заключается в том, чтобы выяснить, является ли элемент в itemscontrol первым или последним и задает маржу в стиле в соответствии с этим. В элементарных элементах под названием AlternationIndex есть прикрепленное свойство, которое можно использовать для этого. Если вы установите AlternationCount на 9999, мы получим AlternationIndex так же, как и индекс accual (до 9999), и затем можем установить margin на первом (AlternationIndex == 0) на другое значение, чем по умолчанию. Задача решена.

 Смежные вопросы

  • Нет связанных вопросов^_^