如何在WPF中设置网格上文本框的只读属性?
假设我在WPF应用程序中的TabControl上有十个文本框。我的目的是设置tabcontrol的IsReadOnly,以便将其上的每个文本框自动设置为只读。但是TabControl似乎没有IsReadOnly属性如何在WPF中设置网格上文本框的只读属性?,wpf,tabcontrol,Wpf,Tabcontrol,假设我在WPF应用程序中的TabControl上有十个文本框。我的目的是设置tabcontrol的IsReadOnly,以便将其上的每个文本框自动设置为只读。但是TabControl似乎没有IsReadOnly属性 如何实现这一点?一种方法是创建自己的tabcontrol。然后添加DependencyProperty IsReadOnly。完成后,可以将所有文本框IsReadOnly绑定到TabItem IsReadOnly。我能想到的最佳方法是:将ReadOnly属性附加到TabControl
如何实现这一点?一种方法是创建自己的tabcontrol。然后添加DependencyProperty IsReadOnly。完成后,可以将所有文本框IsReadOnly绑定到TabItem IsReadOnly。我能想到的最佳方法是:将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>
。。。
然后,您可以在选项卡控件的每个文本框中简单地继承该值。您可以将文本框样式添加到选项卡控件的资源中:
<TabControl.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsReadOnly" Value="{Binding IsReadOnly}" />
</Style>
</TabControl.Resources>
谢谢你,大卫。我要试一试。