Как нарисовать текст (написать на экране), используя стандартные функции OpenGL?

Я знаю, что могу сделать это с GLUT. Но у меня большой проект, и у меня были проблемы с добавлением GLUT (я использую Delphi).

Итак, Например: Item1 [Button] Item2 [Button] Item3 [Button] Я хочу, чтобы ...

Привет! Я ищу способ выровнять кнопки в моем дереве, чтобы они выглядели как в одном столбце, даже если он находится на любом уровне. Например:

Item1 [Button]
 Item2 [Button]
Item3[Button]

я хочу, чтобы это выглядело как

Item1  [Button]
 Item2 [Button]
Item3  [Button]

Как я могу это сделать?

8
задан biju 24 December 2010 в 07:06
поделиться

1 ответ

Во-первых, взгляните на эту запись в блоге Горизонтальное растяжение 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>
8
ответ дан 5 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: