silverlight Button直接设置其background为某一颜色往往达不到效果。因为其内置模板把按钮背景弄成一个渐变画刷。所以想要纯色的背景就修改其模板。
在后台修改模板的代码如下:
StringBuilder sb = new StringBuilder();
sb.Append( "<ControlTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
sb.Append("xmlns:data='clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data' xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' ");
sb.Append("TargetType='Button' >");
sb.Append("<Border x:Name=\"Border\" Background=\"{TemplateBinding Background}\" ><ContentPresenter VerticalAlignment=\"Center\" HorizontalAlignment=\"Left\" /></Border> ");
sb.Append("</ControlTemplate> ");
ControlTemplate ct = XamlReader.Load(sb.ToString()) as ControlTemplate;
btn.Template = ct;
btn.Foreground = new SolidColorBrush(Colors.White);
btn.Background = new SolidColorBrush(Color.FromArgb(0xff, 0x49, 0xa9, 0x8d));