WPF中Combobox上的文本框

时间:2012-02-07 05:05:19

标签: c# wpf wpf-controls

<Grid>
    <ComboBox Name="comboBox1" />
    <TextBox Name="TextBox1" />
</Grid>

在我的wpf应用程序中,我想在组合框上显示一个文本框,但我不知道如何保持文本框大小,以便它只覆盖组合框的框部分,而不是组合框的向下箭头部分?

like this

2 个答案:

答案 0 :(得分:2)

你可以这样做:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="119*" />
            <ColumnDefinition Width="17" />
        </Grid.ColumnDefinitions>
        <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox1" VerticalAlignment="Top" Width="134" Grid.ColumnSpan="2" />
        <TextBox Name="textBox1" Margin="0,0,0,3" />
    </Grid>

关键是将网格的第二列设置为固定大小,其中固定大小表示箭头的可见性。

但是,和其他人一样,最好的办法是将组合框的IsEditable属性设置为true:

<ComboBox Name="combobox1" LostFocus="LostFocus" IsEditable="True"/>

有关详细信息,请参阅此处:WPF ComboBox - IsEditable

答案 1 :(得分:0)

我没有理由将文本框放在组合框上,因为组合框本身是可编辑的。

但你可以做的是,将你的组合框分成两个网格柱,后面的列是固定大小的,包括组合框的箭头部分和前一列的星形大小。让组合框的columnpan为2,文本框为1。

希望有所帮助