我正在使用TextBox,由于某些原因,它需要是只读的。 我不会在这里争论原因。我知道我可以使用TextBlock或Label来显示不可编辑的内容,但不幸的是,有TextBox。
<TextBox IsReadOnly="True" Text="{Binding totalAmount, Mode=OneWay, StringFormat={}{0:C2}}" TextAlignment="Right" />
是否有人知道它是否存在已知问题? 我正在使用WPF 3.5
答案 0 :(得分:1)
为什么不使用Textblock?
<TextBlock Text="{Binding totalAmount, Mode=OneWay, StringFormat={}{0:C2}}" TextAlignment="Right"/>
答案 1 :(得分:1)
使用TextBlock不是答案,因为它是一个完全不同的控件。 IsReadOnly是TextBox的一个非常有用的状态,它可以通过数据绑定切换为true / false。根据MSDN,如果文本框是只读的,则不允许用户输入或编辑,但可以进行编程更改。用户仍然可以选择文本,光标仍然会出现。它也不会像被禁用时那样变灰。
要回答这个问题,TextBox未显示为ReadOnly的最可能原因是因为有一种样式会覆盖该行为。请在代码中搜索可能隐式应用于所有TextBox类型的任何样式:
<Style TargetType="{x:Type TextBlock}">
...
</Style>
您也可以尝试指定自己的显式空白样式并查看是否有帮助
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox" />
</TextBox.Style>
</TextBox>