关于C#代码实现ControlTemplate

2009年3月28日星期六

关于C#代码实现ControlTemplate

现在主流的控件模板和样式是引用XAML资源,不过感觉没有C#代码实现那么灵活,现介绍一下代码实现 ControlTemplate的方法:
  以下是引用片段:
  //控件呈现的显示内容1(这里为Image)
  FrameworkElementFactory fe = new FrameworkElementFactory(typeof(Image), "Image");
  BitmapImage bi = new BitmapImage();
  bi.BeginInit();
  bi.UriSource = new Uri(@"E:ChartControlHanYangChartControlImageMainBackground.jpg");
  bi.EndInit();
  fe.SetValue(Image.SourceProperty, bi);
  //控件呈现的显示内容2(这里为TextBox)
  FrameworkElementFactory fe2 = new FrameworkElementFactory(typeof(TextBox), "TextBox");
  fe2.SetValue(TextBox.WidthProperty,100.0);
  fe2.SetValue(TextBox.HeightProperty, 100.0);
  //把要呈现的显示内容封装起来
  FrameworkElementFactory f = new FrameworkElementFactory(typeof(Grid), "Grid");
  f.AppendChild(fe);
  f.AppendChild(fe2);
  //控件模板
  ControlTemplate ct = new ControlTemplate(typeof(Button));
  ct.VisualTree = f;
  //修改Button 的Template
  Button btn = new Button();
  btn.Template = ct;

0 评论:

发表评论