wp8动态加载xaml控件

来源:互联网 发布:diy装修设计软件 编辑:程序博客网 时间:2024/04/30 02:31

一、字符串形式加载xaml控件

        private void button_Clilk(object sender, RoutedEventArgs e)        {            string buttonXAML = "<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'"+           " Content=\"我是动态加载的继续加载\" Margin=\"10\" Foreground=\"Red\"></Button>";            Button btnRed = (Button)System.Windows.Markup.XamlReader.Load(buttonXAML);            btnRed.Click+=btn_Click;            sp1.Children.Add(btnRed);        }

按下button_Clilk事件 加载一个新的button控件 btnRed


二、路径形式加载xaml控件

      private void btn_Click(object sender, RoutedEventArgs e)            {                Rectangle rectangle = (Rectangle)LoadXaml("/动态加载xaml;component/Rectangle.xaml");                sp1.Children.Add(rectangle);            }

使用上面动态加载的控件btnRed的btn_Click事件调用LoadXaml方法动态加载自定义控件Rectangle

自定义的一个加载xaml控件的方法

 static object LoadXaml(string File)            {                StreamResourceInfo sri = Application.GetResourceStream(new Uri(file, UriKind.Relative));                if (sri != null)                {                    using (StreamReader sr = new StreamReader(sri.Stream))                    {                        return XamlReader.Load(sr.ReadToEnd());                    }                }                return null;            }

注意Rectangle控件的生成操作 改为Resource

效果如下图:



0 0
原创粉丝点击