所以我发布了这个问题,但建议的答案似乎不起作用。所以再一次,重新发布它,更简单的XAML版本。我们通常希望TextBox在Window调整大小时调整大小。我想要“其他方式”行为。采用整个Window区域的TextBox。 TextBox的大小增大/缩小,Window紧随其后。请建议如何做到这一点。
<Window>
<Grid HorizontalAlignment="Stretch">
<TextBox Width="Auto">
</TextBox>
</Grid>
</Window>
答案 0 :(得分:2)
<Window x:Class="MiscSamples.SizeToContent"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SizeToContent" SizeToContent="WidthAndHeight" ResizeMode="NoResize">
<Grid HorizontalAlignment="Stretch">
<TextBox Width="Auto" AcceptsReturn="True">
</TextBox>
</Grid>
</Window>
请注意,您必须包含ResizeMode="NoResize"
,因为如果用户手动调整窗口大小,行为就会丢失。
答案 1 :(得分:-1)
您可以为文本框指定名称,然后将窗口宽度绑定到文本框的大小,如下所示:
<Window Width="{Binding ElementName=txtbox, Path=ActualWidth}">
<Grid HorizontalAlignment="Stretch">
<TextBox x:Name="txtbox" Width="Auto">
</TextBox>
</Grid>
</Window>
我没有包含任何用于调整文本框大小的代码(我假设您将以编程方式执行此操作),但使用此XAML时,窗口的大小应为文本框宽度。