4

我正在尝试使我的应用程序中的所有元素自动调整为父元素。使用网格、边距和自动尺寸效果很好。问题是文本大小没有调整大小,并且在大元素内变得非常小。我尝试使用带有按钮的视图框,效果很好:

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

2 回答 2

1

像这样声明你的标题:

<TreeView x:Name="tree1" Margin="0">
    <TreeViewItem x:Name="item1">
        <TreeViewItem.Header>
            <Viewbox>
                <TextBlock TextWrapping="Wrap" Text="Header" />
            </Viewbox>   
        </TreeViewItem.Header>
    </TreeViewItem>
</TreeView>
于 2013-04-03T10:51:26.200 回答
0

浏览这段代码:

String text = "Your Text Goes here";
    Typeface objTypeFace = new Typeface("Helvetica");
    FormattedText objft = new FormattedText(text, CultureInfo.CurrentCulture, 
            FlowDirection.LeftToRight, objTypeFace , 20, Brushes.Red);

    Size textSize = new Size(objft.Width, objft.Height);

或者:

<Button x:Name="button_1">
  <Viewbox>
    <TextBlock TextWrapping="Wrap" Text="Button1"></TextBlock>
  </Viewbox>                
</Button>
于 2013-04-03T09:31:50.437 回答