所以这是我的问题。在任何包含文本框的文本框或控件上(例如自动完成组合框,如带有 IsEditable="True"的 RadComboBox),一旦您选择并突出显示文本,它就会右对齐以便您可以看到结尾,这是预期的行为。
我遇到的问题可以很简单地通过类似的东西来证明;
<TextBox Text="Blah1 Blah2 Blah3 Blah4 Blah5 Blah6 Blah7 Blah8 Blah9 Blah10" Width="75"/>
视觉引用;
因此,当它显示时,您只会看到“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/