如何在WPF中的Grid上设置文本框的只读属性?

时间:2011-05-13 07:21:41

标签: wpf tabcontrol

假设我在WPF应用程序的TabControl上有十个文本框。我的目的是设置tabcontrol的IsReadOnly,使其上的每个文本框都自动设置为ReadOnly。但TabControl似乎没有IsReadOnly属性。

我怎样才能实现这一目标?

3 个答案:

答案 0 :(得分:2)

一种方法是创建自己的tabcontrol。然后添加DependencyProperty IsReadOnly。如果你完成了,你可以将所有TextBoxes IsReadOnly绑定到你的TabItem IsReadOnly。

答案 1 :(得分:2)

您可以在TabControl的资源中添加TextBox样式:

        <TabControl.Resources>
            <Style TargetType="{x:Type TextBox}">
                <Setter Property="IsReadOnly" Value="{Binding IsReadOnly}" />
            </Style>
        </TabControl.Resources>

答案 2 :(得分:1)

我能想到的最佳方法:将ReadOnly属性附加到TabControl类型:

创建一个新的帮助类:

public static class TabControlHelper
{
    private static readonly DependencyProperty IsReadOnlyProperty =
        DependencyProperty.RegisterAttached("IsReadOnly", typeof(bool), typeof(TabControlHelper), new PropertyMetadata(false));
}

然后在你的xaml:

<TabControl TabControlHelper.IsReadOnly="true">...</TabControl>

然后您可以在标签控件的每个文本框中继承此值。