wpf学习20180606

对象元素的子元素

有三类子元素:内容属性、集合项、值(类型转换)

-----------------------------------------------------------------------------

内容属性

元素对象有Content或Items属性的,这就是内容属性,可以包含元素对象或文本。

集合项

两种类型的集合:List、Dictionary

类型转换

普通文本作为元素的子元素。

---------------------------------------------------------------------------

xaml元素必须有默认构造函数

-------------------------------------------------------------------------------------------------

运行时加载和解析XAML

使用代码解析加载XAML文件

XamlReader对象

如果项目根目录有个Win.xaml的文件,用代码解析载入并显示。

Window win = null;

using(FileStream fs = new FileStream ("Win.xaml", FileMode.Open, FileAccess.Read))

{

  win = (Window)XamlRead.Load(fs);

  win.show();

}

注意事项:FileStream的命名空间System.IO;XamlRead的命名空间System.Windows.Markup;

使用文件流,需要读取物理文件,所以Win.xaml需要调整设置,复制到输出目录:始终复制;生成操作:无。

这些设置在页面的属性设置中。同时要删除页面的后置代码文件。Win.xaml要删除xmlans=class""的设置。+

win.xaml的xmal代码

<Window>

  <StackPanel>

    <Button>

      ......

    <Button>

    .......

......

</Window>

如何找到第二个按钮并给按钮设置文本

win = (Window)XamlRead.Load(fs);

StackPanel sp = (StackPanel)win.Content;

Button btn = sp.Children[1];

btn.Content="找到";

这是根据子集的个数顺序硬编码找对象,有更简单的方法吗?有

----------------------------------------------------------------------------------------

Xaml元素命名

<Window>

  <StackPanel>

    <Button>

      ......

    <Button X:Name="btn1">

    .......

......

</Window>

 

win = (Window)XamlRead.Load(fs);

 

Button btn = (Button)win.FindName("btn1");

btn.Content="找到";

 

posted @ 2018-06-06 17:23  snake1118  阅读(99)  评论(0编辑  收藏  举报