我想制作一个带有发光边框的 TextBox。
TextBox 应该尽可能大,以便包含其中的所有文本。但没有更大。然后边框应该围绕文本。
我使用 3x3 Grid 使边框居中于容器的中间。只要文本足够短,居中就可以正常工作。但是当你输入一个很大的长文本时,ViewBox 并不会真正缩小 TextBox 的大小。
<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 ,因为我只是不想让它放大文本。