WPF列表框两个并排的项目

时间:2011-01-16 09:01:42

标签: c# wpf xaml listbox

基本上我想创建一个表单。我完成后可能需要一段时间,所以我想使用一个列表框,以便表单可滚动。我希望有一个标签旁边有一个文本框,供用户输入。如何在列表框中并排显示标签和文本框?

此外,如果有人对如何创建表单有任何其他建议,请告诉我。

2 个答案:

答案 0 :(得分:5)

不要使用ListBox添加滚动功能,请使用ScrollViewer。

您可以草绘/绘制一个解释您想法的图像吗?

<Grid>
    <ScrollViewer>
         <Grid ScrollViewer.VerticalScrollBarVisibility="Auto"
              ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition  Width="auto" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Label Target="{Binding ElementName=textBlock}"
                       VerticalAlignment="Center">_Name:</Label>
                <TextBox Grid.Column="1"
                         x:Name="textBlock"
                         VerticalAlignment="Center"
                         Text="Enter text here" />
            </Grid>                
            <Border Grid.Column="1">
                <TextBlock Text="Anything you like" />
            </Border>
        </Grid>
    </ScrollViewer>
</Grid>

还有很多其他选择。例如,您可以在我的示例中将ScrollViewer放在Border中。这将使Border的内容可滚动而不是整个表单。关键是确定您想要它的样子以及您希望它的行为方式。

最好的方法是在Expression Blend等设计器中绘制或原型设计。

答案 1 :(得分:0)

将您的包含面板(例如网格)包裹在ScrollViewer中 - http://msdn.microsoft.com/en-us/library/ms750665.aspx