如何以编程方式改变堆栈面板内所有(n个)文本块的字体大小

本文关键字:文本 字体 方式 编程 改变 堆栈 | 更新日期: 2023-09-27 18:01:57

我正在以编程方式在堆栈面板内创建'n'个文本块。我需要改变'n'文本块的字体大小(增加和减少字体大小)。是否有可能在单个语句中更改堆栈面板的所有子节点的字体大小?如果不可能,如何有效地解决?

如何以编程方式改变堆栈面板内所有(n个)文本块的字体大小

您可以在标记中应用样式:

<StackPanel.Resources>
<Style TargetType="TextBlock">
  <Setter Property="FontSize" Value="20"/>
</Style>
</StackPanel.Resources>

可以,您可以参考下面的代码片段,其中'foobar'指的是你的Stackpanel的名称。

        foreach (var children in foobar.Children)
        {
            (children as TextBlock).FontSize = 20;
        }

如果你想让所有的子元素都是另一种样式,为什么不使用"ContentControl"呢?

例如:

    <GroupBox Header="Some Header" FontSize="18" FontWeight="Bold">
        <ContentControl FontSize="14" FontWeight="Normal">
        ....
        </ContentControl
    <GroupBox>
All elements inside the ContentControl Block will be st with normal weight and a size of 14.

您可以使用样式将值应用于StackPanel中所有TextBlock的属性。

很抱歉之前的回答错误。