WPF,窗口调整大小,TextBox调整大小

时间:2013-04-02 21:35:14

标签: c# .net wpf

所以我发布了这个问题,但建议的答案似乎不起作用。所以再一次,重新发布它,更简单的XAML版本。我们通常希望TextBox在Window调整大小时调整大小。我想要“其他方式”行为。采用整个Window区域的TextBox。 TextBox的大小增大/缩小,Window紧随其后。请建议如何做到这一点。

<Window>
    <Grid HorizontalAlignment="Stretch">
        <TextBox Width="Auto">            
        </TextBox>
    </Grid>
 </Window>

2 个答案:

答案 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时,窗口的大小应为文本框宽度。