IsReadOnly属性设置为true的WPF文本框仍可编辑

IsReadOnly属性设置为true的WPF文本框仍可编辑,wpf,.net-3.5,Wpf,.net 3.5,我正在使用一个文本框,出于某些原因,它需要是只读的。 我不会在这里争论原因。我知道我可以使用TextBlock或Label来显示不可编辑的内容,但不幸的是,在这种情况下,有TextBox <TextBox IsReadOnly="True" Text="{Binding totalAmount, Mode=OneWay, StringFormat={}{0:C2}}" TextAlignment="Right" /> 有人知道它是否存在已知的问题吗? 我正在使用WPF3.5,为

我正在使用一个文本框,出于某些原因,它需要是只读的。 我不会在这里争论原因。我知道我可以使用TextBlock或Label来显示不可编辑的内容,但不幸的是,在这种情况下,有TextBox

<TextBox IsReadOnly="True" Text="{Binding totalAmount, Mode=OneWay, StringFormat={}{0:C2}}" TextAlignment="Right" />

有人知道它是否存在已知的问题吗?
我正在使用WPF3.5,为什么不使用文本块

<TextBlock Text="{Binding totalAmount, Mode=OneWay, StringFormat={}{0:C2}}" TextAlignment="Right"/>

使用文本块不是答案,因为它是一个完全不同的控件。IsReadOnly是文本框非常有用的状态,可以通过数据绑定将其切换为true/false。根据MSDN,如果文本框为只读,则不允许用户输入或编辑,但可以进行编程更改。用户仍然可以选择文本,并且光标仍然显示。它也不会像禁用时那样变灰

要回答这个问题,您的文本框没有显示为只读的最可能的原因是因为有一种样式覆盖了该行为。请在代码中搜索可能隐式应用于所有文本框类型的任何样式:

<Style TargetType="{x:Type TextBlock}">
    ...
</Style>

...
您还可以尝试指定自己的显式空白样式,看看是否有帮助

<TextBox>
    <TextBox.Style>
        <Style TargetType="TextBox" />
    </TextBox.Style>
</TextBox>


I设置文本框IsReadOnly=true且为只读。和你的一模一样。你可能有一些改变它的代码。我想了想,但奇怪的是没有名字和风格改变任何东西。。。但你是对的,这可能是因为如果我在主窗口上创建一个只有文本框的示例项目,它实际上是只读的。你能再分享一些XAML代码吗?