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 に答える