1

我有一个只有 10 个字符宽的文本框。我需要在其中输入 20 个字符,但只需要显示最后 10 个字符。我需要强制 TextBox 始终将文本溢出到左侧,从而使右侧的 10 个字符可见。

我查看了几个帖子并尝试了所有我能找到的建议,但它们似乎无法正常工作。

以下是我迄今为止尝试过的事情(单独和组合):

<TextBox 
    HorizontalContentAlignment="Right"
    TextAlignment="Right"
    FlowDirection="RightToLeft"/>

似乎 FlowDirection 是让它工作的最接近的东西,但它使左右箭头键操作 backwords.. (你按左键,TextBox 内的光标向右移动)另外,当你关闭编辑最左边的文本后控制,文本不会弹回并再次显示最右边的字符。

如果没有足够的文本来填充框,TextAlignment 只会将文本推到右侧。

Horizo​​ntalContentAlignment 似乎根本没有帮助......

4

1 回答 1

2

我做了这个小例子:

一、窗口的XAML:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <TextBox Text="1234567890" Width="40" Name="MyTextBox" LostFocus="MyTextBox_LostFocus" />
        <TextBox Text="" Width="40" Name="MyTextBox2" />
    </StackPanel>
</Window>

后面还有一些代码:

    private void MyTextBox_LostFocus(object sender, RoutedEventArgs e) {
        MyTextBox.ScrollToHorizontalOffset(999999);
    }

这只会在失去焦点时完成您正在寻找的东西。您可能必须ScrollToHorizontalOffset()在加载视图后调用才能让 TextBox 以这种方式启动。并且可能有更好的方法来确定参数。double.MaxValue可能是更好的选择。

于 2013-04-04T20:19:43.003 回答