2009-09-24 4 views
0

У меня есть Itemcontrol, ведьма содержит два предмета после привязки. Моя проблема в том, что второй элемент выходит из области окна.Приблизьте предметы в ItemsControl

Мой вопрос: Как я могу приблизить тексты предметов без уменьшения размера шрифта или увеличения высоты окна? Есть ли что-то вроде прокладки и окраски HTML? или, может быть, другой трюк?

p.s - размер шрифта и высота окна не должны быть изменены.

Вот как это выглядит: alt text http://img2.timg.co.il/forums/1_133961330.png

И это код:

<UserControl x:Class="WpfApplication4.AnnouncmentsControl" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Height="86" Width="300"> 
<Grid> 
    <ItemsControl Name="announcmentsListBox" ItemsSource="{Binding}"> 
    </ItemsControl> 
</Grid> 

+0

Вы можете сохранить размер шрифта и высоты окна, если вы измените высоту TextBlock на меньшее значение ...Но я не думаю, что это то, что вы ищете: p – Zenuka

+0

Как в стороне, вы можете удалить «Grid» из этого XAML. Он ничего не добавляет. –

+0

Вы правы Дрю, 10x для этого в стороне – Erez

ответ

1

Ваш TextBlock имеет высоту набор из 40 единиц. Если вы удалите этот атрибут в целом, вы увидите, что предметы разнесены более естественно.

Таким образом, ваш XAML будет выглядеть следующим образом:

<Grid> 
    <ItemsControl Name="announcmentsListBox" ItemsSource="{Binding}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock Text="{Binding Path=Text}" /> 
        <Button /> 
       </StackPanel> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Grid> 
+0

Извините, но я отправил сначала неправильный код теперь он является реальным – Erez

+0

В вашем вопросе недостаточно информации, чтобы рассказать, что уже происходит. Например, какой тип объекта привязан к элементу управления? Какие шаблоны данных подбираются для этого типа? –

+0

Hi Drew, Объект, связанный с элементом управления элементами, представляет собой список класса, который я написал, и список наследуется от ObservableCollection, . Я не использовал никаких DataTemplates. – Erez

0

Я бы посоветовал вам использовать Mole визуализатор для изучения сгенерированных элементов. Моль 4.2 можно скачать с http://karlshifflett.wordpress.com/mole-for-visual-studio/

Просто нужно скопировать «Mole.Visualizer.dll» в соответствующую папку визуализатора.

Если вы разрабатываете на Vista, и работаете с надземной безопасностью включен, необходимо установить Моль в следующем каталоге.

* {VS Install path}\Common7\Packages\Debugger\Visualizers 

Все другие скачать и распаковать выше пакета. Скопируйте файл в пакете с Release либо:

* My Documents\Visual Studio 2005\Visualizers {VS2005} 
* My Documents\Visual Studio 2008\Visualizers {VS2008} 

Вы можете установить точку останова где-то в коде, который легко доступен, а затем запустить визуализатор Mole на какой-либо объект. Переместите визуальное дерево в элемент управления itemscontrol. Ищите значения в Margin и Padding для сгенерированных текстовых блоков. Он также расскажет вам, наследуются ли эти значения или локальные и т. Д.

0

Используйте значение «Заполняемость» равным 0. Кроме того, вы можете установить отрицательные поля, которые во многих случаях являются единственным способом принуждения текста к определенным макетам (где Padding doesn 't соответствовать счету, а макет контейнера не является допустимым.)

Вы также можете реализовать свой собственный шаблон панели элементов и переопределить макет каждого элемента, чтобы компенсировать введенное дополнение, но это не должно быть необходимо. Тем не менее, это обеспечит вам контроль над расчетом раскладки для всех элементов, чтобы вы могли наилучшим образом подобрать каждый элемент (и даже пойти на один шаг дальше и реализовать сумасшедшие новые макеты элементов, такие как карусель, как это было продемонстрировано многими до RTM видео WPF/Avalon.)

Надеюсь, что это помогает, это то, что я делаю.

+0

Я полагаю, стоит упомянуть, что вам нужно для реализации шаблона элементов, чтобы должным образом принудить отрицательное дополнение. В качестве альтернативы вы можете применить настройки к родительскому элементу, хотя, по моему опыту, это то, что вы в конечном итоге придется переделать в будущем. Правильный способ отображения элементов списка состоит в их шаблоне, предполагая, что внешний вид по умолчанию не является адекватным (или, в вашем случае, представляется нежелательным). –

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

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