以编程方式创建Button模板

时间:2011-01-19 17:04:56

标签: c# silverlight windows-phone-7

首先,我很抱歉我的英语我希望你理解我的问题(接受更正,下一篇文章会更正确)。

好的,这是我的方案:为Windows Phone 7开发。我无法使用XAML模板。我需要在运行时使用C#代码创建一个模板。我必须自定义的唯一元素是处于非活动状态的背景和前景色,当用户按住按钮时,以及边框的圆角。

设置Button.Style属性仅适用于默认状态(非活动),我无法创建角半径:

Style buttonStyle = new Style(typeof(Button); 

buttonStyle.Setters.Add(new Setter(Button.BackgroundProperty, new SolidColorBrush(Colors.Blue)); 
buttonStyle.Setters.Add(new Setter(Button.ForegroundProperty, new SolidColorBrush(Colors.White))); 

Button myBytton = new Button();
myButton.Style = buttonStyle;

下一步是为Button.Template属性创建一个CustomTemplate,但总是引发异常:

CustomTemplate myTemplate = new CustomTemplate();
myTemplate.TargetType = typeof(Button); // Exception raises here: InvalidOperationException wihtout more info

(..继续代码......)

Button myBytton = new Button();
myButton.Template = myTemplate;

我查看的所有示例都使用XAML作为CutomTemplate。我不知道如何为不同的按钮状态和边框半径设置样式。

2 个答案:

答案 0 :(得分:1)

您可能会发现Pete Brown的帖子有助于动态创建xaml。

Dynamically Generating Controls in WPF and Silverlight

答案 1 :(得分:0)

相关问题