如何在作为其他元素的内容的一部分的TextBox上设置TextAlignment属性?

时间:2012-03-12 16:04:11

标签: silverlight xaml silverlight-5.0

我有一个元素,在其Content属性中有TextBlock和TextBox。我需要为TextBox设置TextAlignment而不干扰控件的当前样式,所以我应该使用Setter Property和xaml以某种方式使它工作。

这可能吗?怎么样?我不想用我自己的控件重新创建内容,或者通过样式设置它,因为样式可以在运行时更改,我想保留样式。

编辑:示例是DataForm。 DataForm由几个DataField元素组成。每个DataField都包含一个Label和输入控件。现在,通常我可以这样做

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

但如果我这样做,我将失去DataField的风格,我想避免它。那么,有没有办法可以访问DataField的这个TextAlignment属性,所以我可以将它设置为Right,但不是所有这些,只是我想要的那些(ex数字)。这就是为什么它应该在DataField的特定实例上完成。

所以任务:将DataField Text设置为右对齐,不干扰其样式,并为特定的DataField执行此操作。

我希望现在更清楚。

1 个答案:

答案 0 :(得分:0)

如何创建特定的TextBox样式?

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

这样做你可以通过属性“Style”

在xaml上设置它
<TextBox Style="AlignedTextBoxStyle"></TextBox>

如果您要动态添加它,您也可以这样做:

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

我认为这是在不干扰“ListBoxItem”风格的情况下实现这一目标的最佳方式

希望有所帮助