c# - 获得焦点并选择文本时文本左对齐

标签 c# xaml silverlight textbox silverlight-5.0

所以这是我的问题。在任何包含文本框的文本框或控件上(例如自动完成组合框,如带有 IsEditable="True"的 RadComboBox),一旦您选择并突出显示文本,它就会右对齐以便您可以看到结尾,这是预期的行为。

我遇到的问题可以很简单地通过类似的东西来证明;

<TextBox Text="Blah1 Blah2 Blah3 Blah4 Blah5 Blah6 Blah7 Blah8 Blah9 Blah10" Width="75"/>

视觉引用;

enter image description here

因此,当它显示时,您只会看到“Blah1 Blah2”,但如果您选择/突出显示所有文本,它会自动右对齐。这在大多数情况下都很好,但问题是在这种情况下,用户希望能够选择/突出显示包含的文本并使其在选择/突出显示时保持左对齐并忽略溢出。 (编辑:不是完全忽略溢出,只是不突出显示它并保持左对齐)

我已经尝试了我所知道的范围来做到这一点,只是试图追捕执行此操作的任何行为。有人知道一个方便的技巧或我不知何故忽略的一些属性吗?

最佳答案

好吧,我花了一些时间来找出罪魁祸首并找出解决办法,但这种方法对我的问题的第一部分和第二部分都很有效。

我最终为我的问题的第一部分所做的一切(这是一个可编辑的组合框,总是显示选择文本框的内容右对齐或居中对齐)是在控件模板中附加一个事件触发器以设置 SelectionStart\SelectionLength 加载时为“0”。这基本上允许它被填充,然后将那该死的文本拍回到左对齐,并且我的 *** 比预期的痛苦要小得多。

所以类似(伪);

<ControlTemplate>
   <TextBox>
      <i:Interaction.Triggers>
            <i:EventTrigger EventName="Loaded">
                  <ei:ChangePropertyAction TargetName="PART_EditableTextBox"
                                                     PropertyName="SelectionLength"
                                                     Value="0" />
            </i:EventTrigger>
       </i:Interaction.Triggers>
    </TextBox>
</ControlTemplate>

和或多或少的相同类型的东西,用于选择文本,并设置 selectionStart 回到“0”,爱上了一些SL,感谢您的查看。

关于c# - 获得焦点并选择文本时文本左对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003344/

相关文章:

c# - 如果找不到指定的图像文件,显示默认图像的最佳方式是什么?

c# - 如何从字符串运行代码?

wpf - 在 WPF/XAML 中创建 Alt 键快捷方式

wpf - XAML SVG 在运行时颜色变化

silverlight - 自定义控件、 View 模型和依赖属性

c# - JetEntityFramework 与 EF 6?

C# webBrowser1 如何按类获取元素?

silverlight mediaelement RTSP

c# - XAML 代码 IsChecked 在 ToggleButton 上触发

c# - 如何检查依赖对象是否包含依赖属性?