wpf xaml面板尺寸

我确信有一个简单的解释为什么会这样,但似乎无法找到它.从下面的代码为什么我的文本框延伸到窗口之外?我想是因为我已经将它们的宽度设置为等于它们完美对齐的窗口大小…但是运行它并且显然不是这种情况.我错过了什么?设置宽度的正确方法是什么?

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="200">
    <StackPanel Orientation="Horizontal">
        <TextBox Width="100">Hello</TextBox>
        <TextBox Width="100" TextAlignment="Right">World</TextBox>
    </StackPanel>
</Window>

最佳答案 窗口的宽度包括边框之类的东西,而高度包括标题栏之类的东西.因此,在设置宽度/高度时,您需要考虑这些因素.您可以使用Window上的
SizeToContent选项使其大小适合TextBoxes.

喜欢:

<Window ... SizeToContent="Width"

或者您可以使用网格替换StackPanel,以便为每个TextBox提供窗口可用宽度的一半:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>

    <TextBox Grid.Column="0">Hello</TextBox>
    <TextBox Grid.Column="1" TextAlignment="Right">World</TextBox>
</Grid>
点赞