ArcGIS API for Silverlight 載入google地圖
阿新 • • 發佈:2019-01-31
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 Syit.CommonClass { 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 } }
private void btography_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { e.Handled = true; } private void btography_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { //設定背景顏色 this.rect1.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FFF29536")); this.rect2.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); this.rect3.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); setSelectedLinearGradientBrush(rect1); setUnSelectedLinearGradientBrush(rect2); setUnSelectedLinearGradientBrush(rect3); //設定地圖顯示與隱藏 topographyLayer.Visible = true; //google地形圖 roadLayer.Visible = false; //google交通圖 sateliateLayer.Visible = false; //google衛星圖 sateliateTextLayer.Visible = false; //google衛星圖文字 } private void broad_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { e.Handled = true; } private void broad_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { //設定背景顏色 this.rect1.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); this.rect2.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FFF29536")); this.rect3.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); setUnSelectedLinearGradientBrush(rect1); setSelectedLinearGradientBrush(rect2); setUnSelectedLinearGradientBrush(rect3); //設定地圖顯示與隱藏 topographyLayer.Visible = false; //google地形圖 roadLayer.Visible = true; //google交通圖 sateliateLayer.Visible = false; //google衛星圖 sateliateTextLayer.Visible = false; //google衛星圖文字 } private void bsateliate_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { e.Handled = true; } private void bsateliate_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { //設定背景顏色 this.rect1.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); this.rect2.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); this.rect3.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FFF29536")); setUnSelectedLinearGradientBrush(rect1); setUnSelectedLinearGradientBrush(rect2); setSelectedLinearGradientBrush(rect3); //設定地圖顯示與隱藏 topographyLayer.Visible = false; //google地形圖 roadLayer.Visible = false; //google交通圖 sateliateLayer.Visible = true; //google衛星圖 sateliateTextLayer.Visible = true; //google衛星圖文字 } //選中狀態 public void setSelectedLinearGradientBrush(Rectangle rect) { //設定stroke值 rect.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FFF29536")); //設定漸變色 GradientStop gs = new GradientStop(); gs.Offset = 0.0; gs.Color = ColorRevert.ToColor("#FFFDF6DF"); GradientStop gs1 = new GradientStop(); gs1.Offset = 1.0; gs1.Color = Colors.White; GradientStop gs2 = new GradientStop(); gs2.Offset = 0.5; gs2.Color = ColorRevert.ToColor("#FFF9E8B2"); GradientStop gs3 = new GradientStop(); gs3.Offset = 0.5; gs3.Color = ColorRevert.ToColor("#FFFFD75D"); LinearGradientBrush lgb = new LinearGradientBrush(); lgb.StartPoint = new Point(0.5, 0); lgb.EndPoint = new Point(0.5, 1); lgb.GradientStops.Add(gs); lgb.GradientStops.Add(gs1); lgb.GradientStops.Add(gs2); lgb.GradientStops.Add(gs3); rect.Fill = lgb; } //未選中狀態 public void setUnSelectedLinearGradientBrush(Rectangle rect) { //設定stroke值 rect.Stroke = new SolidColorBrush(ColorRevert.ToColor("#FF7392BD")); //設定漸變色 GradientStop gs = new GradientStop(); gs.Offset = 0.0; gs.Color = ColorRevert.ToColor("#FFF5F6FB"); GradientStop gs1 = new GradientStop(); gs1.Offset = 1.0; gs1.Color = ColorRevert.ToColor("#FFE6EDFC"); GradientStop gs2 = new GradientStop(); gs2.Offset = 0.5; gs2.Color = ColorRevert.ToColor("#FFE6EBF5"); GradientStop gs3 = new GradientStop(); gs3.Offset = 0.5; gs3.Color = ColorRevert.ToColor("#FFD7E3F7"); LinearGradientBrush lgb = new LinearGradientBrush(); lgb.StartPoint = new Point(0.5, 0); lgb.EndPoint = new Point(0.5, 1); lgb.GradientStops.Add(gs); lgb.GradientStops.Add(gs1); lgb.GradientStops.Add(gs2); lgb.GradientStops.Add(gs3); rect.Fill = lgb; }
<Border HorizontalAlignment="Left" Margin="50,5,0,0" Width="230" BorderThickness="1" CornerRadius="5" VerticalAlignment="Top"> <Border.Effect> <DropShadowEffect Direction="-90" Color="#FF4D4D4D" ShadowDepth="4"/> </Border.Effect> <Border.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFDDF1FD" Offset="0"/> <GradientStop Color="#FFCAE9FC" Offset="1"/> </LinearGradientBrush> </Border.Background> <Grid HorizontalAlignment="Left" Width="229"> <Border x:Name="btography" HorizontalAlignment="Left" Margin="16,4,0,4" Width="64" MouseLeftButtonDown="btography_MouseLeftButtonDown" MouseLeftButtonUp="btography_MouseLeftButtonUp"> <Grid> <Rectangle Stroke="#FFF29536" RadiusX="1" RadiusY="1" x:Name ="rect1"> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFFDF6DF" Offset="0"/> <GradientStop Color="White" Offset="1"/> <GradientStop Color="#FFF9E8B2" Offset="0.5"/> <GradientStop Color="#FFFFD75D" Offset="0.5"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <TextBlock Margin="16,6,13,2" TextWrapping="Wrap" Text="地形" Foreground="#FF0B333C" FontWeight="Bold" FontSize="14.667" FontFamily="SimSun"/> </Grid> </Border> <Border x:Name="broad" Margin="84,4,81,4" MouseLeftButtonDown="broad_MouseLeftButtonDown" MouseLeftButtonUp="broad_MouseLeftButtonUp"> <Grid> <Rectangle Stroke="#FF7392BD" RadiusX="1" RadiusY="1" x:Name ="rect2"> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF5F6FB" Offset="0"/> <GradientStop Color="#FFE6EDFC" Offset="1"/> <GradientStop Color="#FFE6EBF5" Offset="0.5"/> <GradientStop Color="#FFD7E3F7" Offset="0.5"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <TextBlock Margin="17,6,11,2" TextWrapping="Wrap" Text="街道" Foreground="#FF0B333C" FontWeight="Bold" FontSize="14.667" FontFamily="SimSun"/> </Grid> </Border> <Border x:Name="bsateliate" HorizontalAlignment="Right" Margin="0,4,14,4" Width="64" MouseLeftButtonDown="bsateliate_MouseLeftButtonDown" MouseLeftButtonUp="bsateliate_MouseLeftButtonUp"> <Grid> <Rectangle Stroke="#FF7392BD" RadiusX="1" RadiusY="1" x:Name ="rect3"> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFF5F6FB" Offset="0"/> <GradientStop Color="#FFE6EDFC" Offset="1"/> <GradientStop Color="#FFE6EBF5" Offset="0.5"/> <GradientStop Color="#FFD7E3F7" Offset="0.5"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <TextBlock Margin="18,6,12,2" TextWrapping="Wrap" Text="影像" Foreground="#FF0B333C" FontWeight="Bold" FontSize="14.667" FontFamily="SimSun"/> </Grid> </Border> </Grid> </Border>