0

我在网格中动态添加一些控件。我不知道有多少,也不知道确切的层次结构。我想要做的是访问一些具有特定类型的控件(例如按钮)并实例化一些属性。做这个的最好方式是什么?

4

2 回答 2

1

您可以在网格级别覆盖按钮样式。这是一个例子:

<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>

在此示例中,放置在网格内的所有按钮都具有由网格资源中定义的样式设置的背景和字体大小。

编辑:这也适用于在运行时添加的控件按钮,样式将在添加到网格时应用于这些控件,并且您还可以根据需要以编程方式定义样式并将它们添加到网格资源中,它们将自动应用。

于 2009-04-08T10:31:44.243 回答
0

您必须使用 VisualTreeHelper 逐步完成VisualTree。有一些很好的例子说明如何获得特定类型的控件

于 2009-04-08T10:38:14.680 回答