1、新建一个静态类ColorRevert.cs,代码如下:
using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace Demo { public static class ColorRevert { #region 颜色转换 public static Color ToColor(this string colorName) { if (colorName.StartsWith("#")) colorName = colorName.Replace("#", string.Empty); int v = int.Parse(colorName, System.Globalization.NumberStyles.HexNumber); return new Color() { A = Convert.ToByte((v >> 24) & 255), R = Convert.ToByte((v >> 16) & 255), G = Convert.ToByte((v >> 8) & 255), B = Convert.ToByte((v >> 0) & 255) }; } public static int ToArgb(this Color color) { int argb = color.A << 24; argb += color.R << 16; argb += color.G << 8; argb += color.B; return argb; } #endregion } }
2、 新建一个Silverlight用户控件,并添加一个Rectange控件,并为其赋值填充颜色(当然这个值也可以通过数据库或参数等传递到Silverlight中并使用)
<UserControl x:Class="Demo.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" > <Grid x:Name="LayoutRoot" Background="White"> <Rectangle Height="100" HorizontalAlignment="Left" Margin="306,221,0,0" Name="rectangle1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="241" /> </Grid> </UserControl> using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Json; using ESRI.ArcGIS.Client.Bing; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Geometry; using System.Windows.Media.Imaging; namespace Demo { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); SolidColorBrush scb = new SolidColorBrush(); scb.Color = "#FFBBCCFF".ToColor(); //核心代码在这里 rectangle1.Fill = scb; } } }