Я знаю, что могу сделать это с GLUT. Но у меня большой проект, и у меня были проблемы с добавлением GLUT (я использую Delphi).
Итак, Например: Item1 [Button] Item2 [Button] Item3 [Button] Я хочу, чтобы ...
Привет! Я ищу способ выровнять кнопки в моем дереве, чтобы они выглядели как в одном столбце, даже если он находится на любом уровне. Например:
Item1 [Button]
Item2 [Button]
Item3[Button]
я хочу, чтобы это выглядело как
Item1 [Button]
Item2 [Button]
Item3 [Button]
Как я могу это сделать?
Во-первых, взгляните на эту запись в блоге Горизонтальное растяжение TreeViewItems . ControlTemplate по умолчанию для TreeViewItem не позволяет растягивать содержимое заголовка, что вам понадобится. Используйте стиль TreeViewItem, рекомендованный автором, но измените
<Setter Property="HorizontalContentAlignment" Value="Center" />
на
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
. Теперь у вас будет TreeViewItem, в котором содержимое заголовка растягивается на всю ширину TreeViewItem. Чтобы TreeViewItem отображался с текстом и кнопкой, используйте свойство ItemTemplate TreeView. Если вы просто хотите, чтобы кнопки были выровнены по правому краю, вы можете использовать DockPanel:
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ...}">
<DockPanel LastChildFill="False">
<TextBlock DockPanel.Dock="Left" Text="{Binding ...}"/>
<Button DockPanel.Dock="Right" Content="{Binding ...}"/>
</DockPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
Если содержимое кнопок может иметь переменный размер и вы хотите, чтобы все они имели одинаковую ширину, используйте сетку с SharedSizeScope. Установите Grid.IsSharedSizeScope = "True"
в TreeView, а затем в своем ItemTemplate сделайте что-то вроде этого:
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ...}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition SharedSizeGroup="Buttons"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ...}"/>
<Button Grid.Column="1" Content="{Binding ...}"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>