我有一个元素,在其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执行此操作。
我希望现在更清楚。
答案 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”风格的情况下实现这一目标的最佳方式
希望有所帮助