代码之家  ›  专栏  ›  技术社区  ›  Stephen Price

如何让文本框填充列和自动滚动?

  •  0
  • Stephen Price  · 技术社区  · 14 年前

    我的DataGridTemplateColumn中有以下代码:

    <Controls:DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBox Text="{Binding AlternateTeacherName, Mode=TwoWay}" Style="{StaticResource InputTextBox}"/>
        </StackPanel>
    </DataTemplate>
    

    风格是:

    <Style x:Key="InputTextBox" TargetType="TextBox" >
    <Setter Property="Margin" Value="1" />
    <Setter Property="MinWidth" Value="30" />
    <Setter Property="BorderThickness" Value="0" />
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="VerticalAlignment" Value="Center" />
    <Setter Property="TextAlignment" Value="Left" />
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    

    我遇到的问题是,文本框正确填充了列宽(包括调整列宽时),但如果我在文本框中键入,光标到达行尾时将不可见。我想把短信发给 向左滚动 使当前文本仍然可见。

    谢谢

    1 回复  |  直到 14 年前
        1
  •  0
  •   Josh    14 年前

    取出堆叠面板。它将元素从左到右对齐,并且不会拉伸以填充剩余的空间。你也可以在你的风格中去掉水平和最小宽度。如果必须设置MinWidth,它应该在列上。

    推荐文章