1

所以我发布了这个问题,但建议的答案似乎不起作用。所以再一次,重新发布它,更简单的 XAML 版本。我们通常期望 TextBox 的大小随着 Window 的调整而调整。我想要“其他方式”的行为。占据整个窗口区域的文本框。文本框的大小增加/缩小,窗口跟随。请建议这样做的方法。

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

2 回答 2

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",因为如果用户手动调整窗口大小,则行为会丢失。

于 2013-04-02T21:42:38.957 回答
-1

您可以为文本框命名,然后将窗口宽度绑定到文本框的大小,如下所示:

<Window Width="{Binding ElementName=txtbox, Path=ActualWidth}">
   <Grid HorizontalAlignment="Stretch">
      <TextBox x:Name="txtbox" Width="Auto">            
      </TextBox>
   </Grid>
</Window>

我没有包含任何调整文本框大小的代码(我假设您将通过编程方式执行此操作),但是使用此 XAML,窗口应该调整为文本框宽度。

于 2013-04-02T21:41:50.340 回答