ScrollViewer在键入较长的文本时会使TextBox变宽,即使已禁用Horizo​​ntalScrollMode

时间:2017-07-05 14:41:12

标签: c# xaml uwp

我在ScrollViewer中有一个Grid(只启用了垂直滚动)。我在Grid中有一个TextBox,ColumnSpan为2,其Horizo​​ntalAlignment为Stretch。由于ScrollViewer,如果用户开始输入非常长的东西,TextBox将变得越来越宽,我想避免它,它应该只有它跨越的两列宽,而不是加宽它们。

我不确定将MaxWidth设置为常量有多好,所以我想将它绑定到两列的ActualWidths。

在列定义中:

<ColumnDefinition Width="1.3*" x:Name="grdCol1"/>
<ColumnDefinition Width="1.3*" x:Name="grdCol2"/>

TextBox:

Width="{Binding ElementName=grdCol1, Path=ActualWidth}"

问题是,如何将其绑定到grdCol1 + grdCol2的ActualWidth?或者我应该走这条路?有没有一种首选的,也许更清洁的方法呢?

1 个答案:

答案 0 :(得分:0)

原来我的ScrollViewer出现了问题。

不工作:

<ScrollViewer
    HorizontalScrollBarVisibility="Hidden"
    HorizontalScrollMode="Disabled"
    VerticalScrollBarVisibility="Auto"
    VerticalScrollMode="Auto">

WORKING:

<ScrollViewer
    HorizontalScrollBarVisibility="Disabled"
    HorizontalScrollMode="Disabled"
    VerticalScrollBarVisibility="Auto"
    VerticalScrollMode="Auto">

你必须将Horizo​​ntalScrollBarVisibility设置为Disabled,因为Hidden不足以达到此目的。

相关问题