c# - WPF - 自动调整所有文本的大小

标签 c# wpf xaml visual-studio-2012

我试图让我的应用程序中的所有元素自动调整大小以适应父元素。这在使用网格、边距和自动大小方面进展顺利。问题是文本大小没有调整大小,在大元素中看起来很小。我尝试使用带有按钮的 View 框,效果很好:

<Button x:Name="button_1">
  <Viewbox>
    <TextBlock Text="Button1"></TextBlock>
  </Viewbox>                
</Button>

但我无法让它与 TreeviewItem 中的 Header 一起工作。 如何自动调整应用程序中所有文本元素的字体大小? 对此的任何解决方案都非常适用。不需要涉及viewbox元素的使用。

编辑: 我可能表述的问题有点不清楚。我的问题是自动调整 TreeViewItem 中标题内的文本。

<TreeView x:Name="tree1" Margin="0">
    <TreeViewItem x:Name="item1" Header="Item1"> //This header needs to autosize
     ...
    </TreeViewItem>
</TreeView>

解法:等同于mathieu给出的答案。

<TreeView x:Name="tree1" Margin="0">
    <TreeViewItem x:Name="item1">
      <TreeViewItem.Header>
        <Viewbox>
          <TextBlock>Item1</TextBlock>
        </Viewbox>
      </TreeViewItem.Header>
    </TreeViewItem>
</TreeView>

最佳答案

像这样声明你的标题:

<TreeView x:Name="tree1" Margin="0">
    <TreeViewItem x:Name="item1">
        <TreeViewItem.Header>
            <Viewbox>
                <TextBlock TextWrapping="Wrap" Text="Header" />
            </Viewbox>   
        </TreeViewItem.Header>
    </TreeViewItem>
</TreeView>

关于c# - WPF - 自动调整所有文本的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15783492/

相关文章:

c# - "redundant comma in array initializer"为什么要修复

c# - 在数据表中搜索项目的有效方法

c# - 在 WPF 中使用 Backgroundworker 弹出主应用程序的 MessageBox

wpf - wpf 中的可拖动弹出控件

c# - 在用户控件中定义命令绑定(bind)

c# - WPF 4.5 绑定(bind)到静态属性

c# - 实时可视化树中缺少动态添加的控件

c# - .NET Core 2.2 DI 容器中的上下文绑定(bind)?

c# - 在方法中使用 const

c# - 如何在 WPF 中实现与用户控件的数据绑定(bind)?