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; } }}