2014-11-18 5 views
3

Итак, вот моя проблема. На любом TextBox или элементе управления, который включает TextBox (например, для AutoComplete ComboBox, такого как RadComboBox с IsEditable = "True"), ожидается, что когда вы выберете и выделите текст, он выравнивается вправо, чтобы вы могли видеть конец.Выравнивание левого текста при фокусировке и выборе текста

Проблема, которую я имею, может быть продемонстрирована действительно просто чем-то вроде;

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

визуальный контакт с ориентирами;

enter image description here

Так что, когда она отображается вы видите только «Blah1 Blah2», но если вы выбираете/выделить весь текст автоматически переходит к правому краю. В большинстве случаев это нормально, но проблема в этом случае заключается в том, что пользователь хочет выбрать/выделить содержащийся текст и оставить его влево, если выбран/выделен, и игнорировать переполнение. (Редактирование: не полностью игнорировать переполнение, просто не отображать его подсвечиваемым и оставаться налево)

Я пробовал, насколько я знаю, чтобы сделать это, просто не пытаясь выследить, что это за поведение , Знает ли кто-нибудь полезный трюк или какое-то свойство, которое я каким-то образом забыл или что-то еще?

ответ

3

Хорошо, поэтому мне потребовалось немного времени, чтобы выследить преступника и выяснить исправить, но этот подход восхитительно подходит для первой части моей проблемы и второй части.

Все, что я в конечном итоге делает для первой части моей проблемы (которая была редактируемые выпадающий всегда отображать содержимое selectiontextbox в вправо или центр оправдано) был подсоединять триггер события в ControlTemplate, чтобы установить 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, спасибо за вид.