wpf xaml面板尺寸

时间:2011-04-12 23:16:54

标签: wpf xaml stackpanel

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

<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>

1 个答案:

答案 0 :(得分:2)

窗口宽度包括边框等内容,高度包含标题栏等内容。因此,在设置宽度/高度时,您需要考虑这些因素。您可以使用Window上的SizeToContent选项使其大小适合TextBox。

像:

<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>