Как установить свойство TextAlignment для TextBox, который является частью содержимого другого элемента? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть элемент, у которого есть TextBlock и TextBox в свойстве Content.Мне нужно установить TextAlignment для TextBox, не влияя на текущий стиль элемента управления, поэтому я должен как-то заставить его работать с Setter Property и xaml.

Возможно ли это и как?Я не хочу воссоздавать Контент с моими собственными элементами управления или настраивать его с помощью стиля, поскольку стиль может быть изменен во время выполнения, и я хочу сохранить стили как они есть.

Редактировать: пример - DataForm.DataForm состоит из нескольких элементов DataField.Каждый DataField состоит из метки и элемента управления вводом.Теперь, обычно, я мог бы сделать это

<DataField Label="{Binding ...}">
    <TextBox Text="{Binding ...}" TextAlignment="Right" />
</DataField>

Но если я это сделаю, я потеряю стиль поля данных, которого я хочу избежать.Итак, есть ли способ, которым я могу получить доступ к этому свойству TextAlignment DataField, чтобы я мог установить его на Right, но не для всех из них, только те, которые я хочу (например, числовые).Вот почему это должно быть сделано на конкретном экземпляре DataField.

Итак, задача: установить выравнивание текста DataField по тексту, не мешая его стилю, и сделать это для определенного DataField.

Надеюсь, теперь яснее.

1 Ответ

0 голосов
/ 12 марта 2012

Как насчет создания определенного стиля TextBox?

<Style x:Key="AlignedTextBoxStyle" TargetType="TextBox">
    <Setter Property="HorizontalAlignment" Value="Right"></Setter>
    <Setter Property="VerticalAlignment" Value="Center"></Setter>
</Style>

Таким образом вы можете установить его на xaml с помощью свойства "Стиль"

<TextBox Style="AlignedTextBoxStyle"></TextBox>

И если вы добавляете егодинамически вы также можете сделать это:

TextBox myTb = new TextBox();
myTb.Style = (Style)Application.Current.Resources["AlignedTextBoxStyle"];

Я думаю, что это лучший способ сделать это, не вмешиваясь в ваш стиль "ListBoxItem"

Надеюсь, это поможет

...