获取WPF窗体上的控件并赋值 八
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
获取WPF窗体上的控件并赋值八
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace 获取空间上的textBOX并赋值1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Start();
}
public void Start()
{
t1.Text = "张三";
t2.Text = "18";
t3.Text = "男";
}
private void btn_Click(object sender, RoutedEventArgs e)
{
this.SetNotEditable(this.g1.Children); //gridUCContent为最顶层Grid }
private void SetNotEditable(UIElementCollection uiControls)
foreach (UIElement element in uiControls)
{
if (element is TextBox)
{
(element as TextBox).IsEnabled = false;
t1.Text = string.Empty;
t2.Text = string.Empty;
t3.Text = string.Empty;
}
else if (element is Grid)
{
this.SetNotEditable((element as Grid).Children);
}
else if (element is Expander)
{
//此代码仅供参考
//在您的布局中,Expander或者其他不具有Children属性的控件的Content,若不是StackPanl或Grid,而是其他的子控件,则需要更多的判断
if ((element as Expander).Content is StackPanel)
{
StackPanel sa = (element as Expander).Content as StackPanel;
this.SetNotEditable(sa.Children);
}
else if ((element as Expander).Content is Grid)
{
Grid sa = (element as Expander).Content as Grid;
this.SetNotEditable(sa.Children);
}
}
else if (element is StackPanel)
{
this.SetNotEditable((element as StackPanel).Children);
}
else if (element is ScrollViewer)
{
StackPanel sp = (element as ScrollViewer).Content as StackPanel;
this.SetNotEditable(sp.Children);
//ScrollViewer不具有Children属性,无法对其进行遍历,但是具有Content属性,作为容器型控件,一般都可以通过这样的方法来解决。
} }
}
}
}