WPF - быстрый способ получения визуального дерева - PullRequest
0 голосов
/ 08 апреля 2009

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

Ответы [ 2 ]

1 голос
/ 08 апреля 2009

Вы можете переопределить стиль кнопки на уровне сетки. Вот пример:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="144*" />
        <RowDefinition Height="171*" />
    </Grid.RowDefinitions>
    <Grid.Resources>
        <!-- Override all Buttons style that are childs of the grid -->
        <Style TargetType="Button">
            <Setter Property="Background" Value="LightBlue"/>
            <Setter Property="FontSize" Value="20" />
        </Style>
    </Grid.Resources>
    <Button Grid.Row="0">Button1</Button>
    <Button Grid.Row="1">Button2</Button>
</Grid>

в этом примере все кнопки, размещенные внутри сетки, имеют фон и размер шрифта, установленные стилем, определенным в ресурсах сетки.

Редактировать: это работает для кнопок элементов управления, добавленных также во время выполнения, стиль будет применяться к этим элементам управления при добавлении в сетку, и вы также можете определять стили программно, если хотите, и добавлять их в ресурсы сетки, и они применяется автоматически.

0 голосов
/ 08 апреля 2009

Вам придется пройти через VisualTree, используя VisualTreeHelper . Есть несколько хороших примеров того, как получить элементы управления определенного типа

...