C# 将文本框缩放到中的文本

C# 将文本框缩放到中的文本,c#,.net,wpf,C#,.net,Wpf,我想制作一个有发光边框的文本框 文本框应尽可能大,以便包含其中的所有文本。但是没有更大的。然后边框应该围绕文本 我使用一个3x3网格,使边界集中在容器的中间。只要文本足够短,居中效果就很好。但是,当您输入一个大的长文本时,ViewBox实际上不会缩小文本框的大小 <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Heigh

我想制作一个有发光边框的文本框

文本框应尽可能大,以便包含其中的所有文本。但是没有更大的。然后边框应该围绕文本

我使用一个3x3网格,使边界集中在容器的中间。只要文本足够短,居中效果就很好。但是,当您输入一个大的长文本时,ViewBox实际上不会缩小文本框的大小

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Viewbox Stretch="Uniform" Grid.Row="1" Grid.Column="1" >
        <Border BorderBrush="#bab98b" BorderThickness="7" CornerRadius="15" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Black">
            <TextBox Name="WaitMessage" Text="A Message" HorizontalAlignment="Center" Foreground="White" Background="Black" Padding="20" FontSize="60" Width="Auto"/>
        </Border>
    </Viewbox>
</Grid>
我认为Viewbox应该根据父容器缩放内容,使其符合可用的尺寸。但是,如果我输入一个很长的文本,它会在末尾剪辑

简而言之:我希望文本均匀地缩小到可用的大小,但永远不要超过需要的大小

有人能解释一下我做错了什么吗

编辑:好的,如果我在中间的列和行中输入10*作为宽度和高度,文本将始终保持在边框内。 问题是,当文本只是一个小文本时,ViewBox会使文本增长。
我想我不能将maxHeight用于此目的,因为我只是不想让它放大文本。

我不知道这对于代码的其余部分有多大的可扩展性,但要将文本放在控件的中心,可以执行以下操作:

<Grid>
      <Border BorderBrush="#bab98b" BorderThickness="7" CornerRadius="15" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Black">
          <TextBox Name="WaitMessage" Text="A Message" HorizontalAlignment="Center" Foreground="White" Background="Black" Padding="20" FontSize="60" Width="Auto"/>
      </Border>
</Grid>
使用。我会做你想做的

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="10*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="10*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Viewbox Grid.Row="1" Grid.Column="1"
             Stretch="Uniform" StretchDirection="DownOnly">
        <TextBox Text="A Message" FontSize="60" />
    </Viewbox>
</Grid>

你试过文本框包装吗?它似乎没有任何作用。此外,它也没有解释为什么Viewbox不会缩小文本框。请重写您的问题,并通过输入您的实际代码和您对itI的确切期望,使其更简单易懂。我希望能够缩放文本,以防它不适合。为此,我想使用ViewBox。但你对文字包装的看法是对的。这是有用的。我刚刚发现,如果你把它放在一个宽度=自动的网格单元中,它似乎不起作用。但是,如果我将宽度更改为相对大小10*,它就会起作用。所以,谢谢你,摆弄它之后它很有用:-谢谢你,这正是我需要的: