关于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;

时间: 2024-08-30 09:10:39

关于C#代码实现ControlTemplate的相关文章

高仿Windows Phone QQ登录界面实例代码

 这篇文章主要介绍了高仿Windows Phone QQ登录界面实例代码,有需要的朋友可以参考一下 给 TextBox文本框前添加图片   扩展PhoneTextBox:添加一个类"ExtentPhoneTextBox"继承 PhoneTextBox ,在"ExtentPhoneTextBox"类中添加属性项:     代码如下: public class ExtentPhoneTextBox : PhoneTextBox     {         /// <

高仿Windows Phone QQ登录界面实例代码_实用技巧

给 TextBox文本框前添加图片 扩展PhoneTextBox:添加一个类"ExtentPhoneTextBox"继承 PhoneTextBox ,在"ExtentPhoneTextBox"类中添加属性项: 复制代码 代码如下: public class ExtentPhoneTextBox : PhoneTextBox    {        /// <summary>        /// 文本框图片属性        /// </summa

Silverlightbutton图片切换样式实例代码_实用技巧

之前一直做WPF现在开始接触Slilverlight感触很多. 今天做一个Button要求 有两个图片,button默认有一个图片,鼠标over时用另一个图片, 用wpf做的时候写一个template很简单,但silverlight和wpf写起来不一样 记录一下.大概思路是两个image鼠标MouseOver的时候一个Visible一个Collapsed 写的是一个自定义控件,代码和皮肤分离,很简单的一个demo 代码下载:ImageButtonTest.rar 先写一个继承自button的im

WPF中如何获取ControlTemplate中的对象

原文 http://www.silverlightchina.net/html/study/WPF/2010/1116/3418.html 先看一段XAML代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <TabItem Name="RootTabItem" Background="Transparent"> <TabItem.Template> <ControlTemplate Tar

listbox-WPF中的ListBox,重写ControlTemplate之后,第一个Item显示异常的问题。

问题描述 WPF中的ListBox,重写ControlTemplate之后,第一个Item显示异常的问题. WPF中的ListBox,我重写了ControlTemplate. 但是绑定一个ObservableCollection进去之后.首次Add进列表的内容都只显示个类名.之后Add进去的东西就正常显示了- 资源里面的代码大致如下: <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="Te

WPF换肤之四:界面设计和代码设计分离

原文:WPF换肤之四:界面设计和代码设计分离 说起WPF来,除了总所周知的图形处理核心的变化外,和Winform比起来,还有一个巨大的变革,那就是真正意义上做到了界面设计和代码设计的分离.这样可以让美工和程序分开进行,而不是糅合在一块,这样做的好处当然也是显而易见的:提高了开发效率. 原先的设计方式 在我们之前设计的代码中,每当添加一个新的窗体的时候,我总是会在这个新的窗体的XAML文件中加入如下的代码,以便使样式能够应用上去: View Code <Window x:Class="Wpf

ArcGIS API for Silverlight代码中使用Template模板

原文:ArcGIS API for Silverlight代码中使用Template模板        在项目开发中,会遇到点选中聚焦闪烁效果,但是因为在使用Symbol的时候,会设置一定的OffSetX和OffSetY,所以聚焦闪烁的时候,有些情况下,会出现闪烁点的位置和Symbol的位置不重叠现象,下面的方法就是解决这个问题的. 1.在Silverlight项目中新建一个文件夹Template,新建一个DefaultMarkerSymbol.xaml的Silverlight资源字典文件,如下

WPF使用ControlTemplate后,设计视图和实际运行结果不一致

问题描述 如图,左边是设计视图,右边是实际运行的,不但高度不一致.而且中间黑色部分的上下端好像还多出了1px左右的透明区域,能透视窗口下方的内容.仔细检查了代码,没有写这部分透明的内容啊.application中的代码<Applicationx:Class="MES_Assisstant.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http

WPF气泡样式弹窗效果代码分享_实用技巧

页面设计需求,做了一个气泡形状的弹出框,效果如下:   设计思路如下: 1. 使用Path绘制气泡的尖尖,将这个放到顶层: 2. 在用border绘制长方形框,将这个放到底层,并且设置Margin值,使得Path图层和border看起来衔接在一起.  代码如下: <Window x:Class="BubblePanelTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta