日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件...

發布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:ArcGIS API for Silverlight 當DataGrid選中項時,地圖聚焦彈出窗口,并可以播放音頻文件

先看效果圖,然后上代碼:


<UserControl x:Class="MapClient.PicMusic"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"mc:Ignorable="d"d:DesignHeight="250" d:DesignWidth="300"><Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Left" Width="300" Height="250" VerticalAlignment="Top"><Border Margin="0" BorderBrush="#FF95C8F7" BorderThickness="1" CornerRadius="8"><Border.Background><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="White" Offset="0"/><GradientStop Color="#FFBBD7EF" Offset="0.194"/></LinearGradientBrush></Border.Background><Border BorderBrush="#FF95C8F7" BorderThickness="1" Margin="7,31,7,7" Background="White"><Grid Margin="-5,-26,-11,-8"><Grid.RowDefinitions><RowDefinition Height="0.096*"/><RowDefinition Height="0.904*"/></Grid.RowDefinitions><Border Margin="6,4,13,96" Grid.Row="1" BorderThickness="0.5"><Border Margin="30,0"><Border.Background><ImageBrush Stretch="Fill" ImageSource="Images/bg.png"/></Border.Background><Image x:Name="gcImg" Margin="8,5"/></Border></Border><Grid Height="86" Margin="0" Grid.Row="1" VerticalAlignment="Bottom"><ScrollViewer Margin="6,-9,12,9" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0.5"><TextBlock x:Name="tbSKShortMes" TextWrapping="Wrap" Text="這里是水庫的詳細信息介紹內容" FontSize="14.667" FontFamily="Microsoft YaHei" Height="76" Width="276" HorizontalAlignment="Center" VerticalAlignment="Center" /></ScrollViewer></Grid><StackPanel HorizontalAlignment="Right" Width="91" Orientation="Horizontal" Margin="0,-4,13,4"><Image x:Name="imgStart" HorizontalAlignment="Left" Height="25" Margin="3,0,5,-5" Width="22" Source="Images/button_grey_play.png" MouseLeftButtonDown="imgStart_MouseLeftButtonDown" MouseLeftButtonUp="imgStart_MouseLeftButtonUp" ToolTipService.ToolTip="播放" Cursor="Hand"/><Image x:Name="imgPause" HorizontalAlignment="Left" Height="25" Margin="5,0,5,-5" Width="22" Source="Images/button_grey_pause.png" MouseLeftButtonDown="imgPause_MouseLeftButtonDown" MouseLeftButtonUp="imgPause_MouseLeftButtonUp" ToolTipService.ToolTip="暫停" Cursor="Hand"/><Image x:Name="imgEnd" HorizontalAlignment="Left" Height="25" Margin="5,0,0,-5" Width="22" Source="Images/button_grey_stop.png" MouseLeftButtonDown="imgEnd_MouseLeftButtonDown" MouseLeftButtonUp="imgEnd_MouseLeftButtonUp" ToolTipService.ToolTip="停止" Cursor="Hand"/></StackPanel><TextBlock x:Name="gcNM" Margin="105,0,129,3" TextWrapping="Wrap" Text="東風水庫" FontWeight="Bold" Cursor="Hand" FontSize="14.667" FontFamily="Microsoft YaHei" Foreground="#FF0056FF" d:LayoutOverrides="Width, Height"/><MediaElement x:Name="media" HorizontalAlignment="Right" Margin="0,0,104,3" Width="21"/></Grid></Border></Border></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.Text; using System.Windows.Controls.Primitives; using System.Windows.Media.Imaging; using MapClient.ServiceReference1; using System.Collections.ObjectModel;namespace MapClient {public partial class PicMusic : UserControl{SK sk; //水庫HL hl; //河流PGZ pgz; //排灌站DF df; //堤防SZ sz; //水閘PWK pwk; //排污口GSZ gsz; //供水站string l_name;string l_Id;string l_type;public PicMusic(){InitializeComponent();}#region 通用方法,只需要更改Show,在實例化窗體的時候,傳入不同的參數即可private Point _location;private bool _isShowing;private Popup _popup;private Grid _grid;private Canvas _canvas;private FrameworkElement _content;//初始化并顯示彈出窗體.公共方法在顯示菜單項時調用public void Show(Point location, string name, string Id, string type){this.l_name = name;this.l_Id = Id;this.l_type = type;/***************2013-05-22**************************/this.gcNM.Text = name; //顯示工程名稱if (_isShowing)throw new InvalidOperationException();_isShowing = true;_location = location;ConstructPopup(this);_popup.IsOpen = true;//處理標題的間距問題string tmp = name;StringBuilder sb = new StringBuilder();for (int i = 0; i < tmp.Length; i++){sb.Append(tmp[i] + " ");}getDataSoapClient client = new getDataSoapClient();client.getGCMediaByIdCompleted += new EventHandler<getGCMediaByIdCompletedEventArgs>(client_getGCMediaByIdCompleted);client.getGCMediaByIdAsync(Id, type);}void client_getGCMediaByIdCompleted(object sender, getGCMediaByIdCompletedEventArgs e){try{ObservableCollection<tb_GCMEDIA> lists = e.Result;if (lists.Count > 0){foreach (tb_GCMEDIA item in lists){//工程名稱this.gcNM.Text = item.GCNM.Trim();string[] s = { "ClientBin" };//音頻MP3文件string urlM = App.Current.Host.Source.OriginalString.ToString().Split(s, StringSplitOptions.RemoveEmptyEntries)[0] + item.MP3URL.ToString().Trim(new char[] { '.', '/' });this.media.Source = new Uri(urlM, UriKind.RelativeOrAbsolute);//圖片文件string urlA = App.Current.Host.Source.OriginalString.ToString().Split(s, StringSplitOptions.RemoveEmptyEntries)[0] + item.PICURL.ToString().Trim(new char[] { '.', '/' });Uri uri = new Uri(urlA, UriKind.RelativeOrAbsolute);BitmapImage image = new BitmapImage(uri);this.gcImg.Source = image;//工程簡要說明this.tbSKShortMes.Text = item.MEMO;}}else{this.media.Source = new Uri("sound.mp3", UriKind.Relative); //音頻資料Uri uri = new Uri("Images/noPic.jpg", UriKind.Relative);BitmapImage image = new BitmapImage(uri);this.gcImg.Source = image; //工程圖片this.tbSKShortMes.Text = "暫無資料,請上傳!"; //工程簡要說明}}catch (Exception){this.media.Source = new Uri("sound.mp3", UriKind.Relative); //音頻資料Uri uri = new Uri("Images/noPic.jpg", UriKind.Relative);BitmapImage image = new BitmapImage(uri);this.gcImg.Source = image; //工程圖片this.tbSKShortMes.Text = "暫無資料,請上傳!"; //工程簡要說明}}public void Show(Point location){if (_isShowing)throw new InvalidOperationException();_isShowing = true;_location = location;ConstructPopup(this);_popup.IsOpen = true;}//關閉彈出窗體public void Close(){_isShowing = false;if (_popup != null){_popup.IsOpen = false;}}//彈出框外面點擊則關閉該窗口protected virtual void OnClickOutside(){Close();}// 用Grid來布局,初始化彈出窗體//在Grid里面添加一個Canvas,用來監測菜單項外面的鼠標點擊事件private void ConstructPopup(FrameworkElement _element){if (_popup != null)return;_popup = new Popup();_grid = new Grid();_popup.Child = _grid;_canvas = new Canvas();_canvas.MouseLeftButtonDown += (sender, args) => { OnClickOutside(); };_canvas.MouseRightButtonDown += (sender, args) => { args.Handled = true; OnClickOutside(); };_canvas.Background = new SolidColorBrush(Colors.Transparent);_grid.Children.Add(_canvas);_content = _element;_content.HorizontalAlignment = HorizontalAlignment.Left;_content.VerticalAlignment = VerticalAlignment.Top;_content.Margin = new Thickness(_location.X, _location.Y, 0, 0);_grid.Children.Add(_content);UpdateSize();}/// <summary>/// 更新大小/// </summary>private void UpdateSize(){_grid.Width = Application.Current.Host.Content.ActualWidth;_grid.Height = Application.Current.Host.Content.ActualHeight;if (_canvas != null){_canvas.Width = _grid.Width;_canvas.Height = _grid.Height;}}#endregion#region WebService 調用方法及關閉窗體方法public void closeWindow(SK mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(HL mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(DF mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(PGZ mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(GSZ mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(PWK mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}public void closeWindow(SZ mp){mp.LayoutRoot.Children.RemoveAt(mp.LayoutRoot.Children.Count - 1);}private void imgStart_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。e.Handled = true;Uri uri = new Uri("Images/button_blue_play.png", UriKind.Relative);BitmapImage image = new BitmapImage(uri);this.imgStart.Source = image;//其他變成灰色圖案uri = new Uri("Images/button_grey_pause.png", UriKind.Relative);BitmapImage image2 = new BitmapImage(uri);this.imgPause.Source = image2;uri = new Uri("Images/button_grey_stop.png", UriKind.Relative);BitmapImage image3 = new BitmapImage(uri);this.imgEnd.Source = image3;}private void imgStart_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。this.media.Play();}private void imgPause_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。e.Handled = true;Uri uri = new Uri("Images/button_blue_pause.png", UriKind.Relative);BitmapImage image = new BitmapImage(uri);this.imgPause.Source = image;//其他變成灰色圖案uri = new Uri("Images/button_grey_play.png", UriKind.Relative);BitmapImage image2 = new BitmapImage(uri);this.imgStart.Source = image2;uri = new Uri("Images/button_grey_stop.png", UriKind.Relative);BitmapImage image3 = new BitmapImage(uri);this.imgEnd.Source = image3;}private void imgPause_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。this.media.Pause();}private void imgEnd_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。e.Handled = true;Uri uri = new Uri("Images/button_blue_stop.png", UriKind.Relative);BitmapImage image = new BitmapImage(uri);this.imgEnd.Source = image;//其他變成灰色圖案uri = new Uri("Images/button_grey_pause.png", UriKind.Relative);BitmapImage image2 = new BitmapImage(uri);this.imgPause.Source = image2;uri = new Uri("Images/button_grey_play.png", UriKind.Relative);BitmapImage image3 = new BitmapImage(uri);this.imgStart.Source = image3;}private void imgEnd_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e){// 在此處添加事件處理程序實現。this.media.Stop();}#endregion} }/// <summary>/// 排灌站列表聚焦/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void dgPGZList_SelectionChanged(object sender, SelectionChangedEventArgs e){ESRI.ArcGIS.Client.Projection.WebMercator mercator = new ESRI.ArcGIS.Client.Projection.WebMercator();// 高亮和選中行相關的地圖元素DataGrid dataGrid = sender as DataGrid;int selectedIndex = dataGrid.SelectedIndex;if (selectedIndex > -1){tb_PGZ findResult = (tb_PGZ)dgPGZList.SelectedItem; //獲取DataGrid的選中行,該DataGrid是數據的DataGrid的Name屬性值Graphic g = new Graphic(){Geometry = mercator.FromGeographic(new MapPoint(double.Parse(findResult.Latitute.ToString().Trim()), double.Parse(findResult.Longitute.ToString().Trim()))),Symbol = LayoutRoot.Resources["DefaultMarkerSymbol"] as Symbol};//保存屬性g.Attributes["Latitute"] = findResult.Latitute; //緯度g.Attributes["Longitute"] = findResult.Longitute; //經度g.Attributes["NM"] = findResult.BZNM; //名稱g.Attributes["ID"] = findResult.ID;//序號ESRI.ArcGIS.Client.Geometry.Envelope selectedFeatureExtent = mercator.ToGeographic(g.Geometry).Extent; //選中點的位置double expandPercentage = 1;//加數值后,聚焦(這里需要注意,進行地理坐標和墨卡托坐標的轉換)double widthExpand = (selectedFeatureExtent.Width + 5) * (expandPercentage / 100);double heightExpand = (selectedFeatureExtent.Height + 5) * (expandPercentage / 100);ESRI.ArcGIS.Client.Geometry.Envelope displayExtent = new Envelope(WKIDConvert.lonlat2mercator(new MapPoint(selectedFeatureExtent.XMin - (widthExpand / 2), selectedFeatureExtent.YMin - (heightExpand / 2))), WKIDConvert.lonlat2mercator(new MapPoint(selectedFeatureExtent.XMax + (widthExpand / 2), selectedFeatureExtent.YMax + (heightExpand / 2)))){SpatialReference = new SpatialReference(102100)};try{//聚焦myMap.ZoomTo(displayExtent);ShowFocus(g);}catch (Exception){}//聚焦之后,將DataGrid中被選中記錄的選中狀態置空dataGrid.SelectedIndex = -1;//聚焦是加載到SL中間顯示并自動添加Tip信息GeneralTransform gt = this.TransformToVisual(Application.Current.RootVisual as UIElement);double x = Browser.ClientWidth;double y = Browser.ClientHeight;Point offset = gt.Transform(new Point(x / 2, y / 2));double controlTop = offset.Y - 125;double controlLeft = offset.X - 300;Point p = new Point(controlLeft, controlTop);tip_Base.g_PicMusic = new PicMusic();tip_Base.g_PicMusic.Show(p, g.Attributes["NM"].ToString(), g.Attributes["ID"].ToString(), "4");}else{//不進行任何處理}}





總結

以上是生活随笔為你收集整理的ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本 奴役 捆绑 受虐狂xxxx | 欧洲精品久久久久毛片完整版 | 国产成人欧美一区二区三区91 | 日韩一区二区三区高清 | 亚洲成网| 国产天堂网| 强伦人妻一区二区三区 | 少妇久久久| 一本一道av | a在线观看免费 | 亚洲一区二区国产精品 | 网站一区二区 | 欧美xo影院| 一区二区三区视频在线播放 | 亚洲a在线视频 | 亚洲免费看黄 | 亚洲一区二区在线免费观看 | 国产精品高潮呻吟久久久 | 欧美激情图区 | 日本久久久久久久久久久 | 国产精品v日韩精品v在线观看 | 毛片资源| 色综合图片区 | 人妻精品久久久久中文 | 成人国产免费观看 | 亚洲系列中文字幕 | 日韩在线| 精品三级视频 | 成人影片在线 | 韩国伦理在线视频 | 女女h百合无遮涩涩漫画软件 | 都市激情 自拍偷拍 | 屁屁影院国产第一页 | 美女露胸软件 | 97视频免费 | www色亚洲| 色婷婷综合五月 | 操伊人 | 激情五月婷婷久久 | 国产精品国产三级国产Av车上的 | 色婷婷777777仙踪林 | 91视频网址 | 超碰97人人爱 | 精品中文字幕一区 | 五月天激情丁香 | 国产在线999| 国产在线不卡 | 四虎国产| 国产精品99久久久久久一二区 | 国产毛片儿 | 国产高清免费在线 | 一本之道av| 在线观看无遮挡 | 免费毛片一区二区三区久久久 | 欧美人与性动交ccoo | ,亚洲人成毛片在线播放 | 欧美色v| 日韩毛片免费观看 | 日本一区二区三区中文字幕 | 亚洲天堂成人网 | 黄色日批| 久热精品在线视频 | 精品福利视频一区二区 | 肉肉av福利一精品导航 | 黄色大片日本 | 婷婷色婷婷开心五月四房播播 | 日韩在线视频观看 | 国产精品久久久久久妇女6080 | 亚洲天堂中文字幕在线 | 国产在线免费观看 | 国产精品一区二区免费视频 | 玖玖玖在线观看 | 国产精品99在线观看 | 一区二区三区四区av | 免费av在线网站 | 亚洲少妇第一页 | 91精品观看 | 日韩美女视频一区二区 | 欧美一区二区视频在线 | 丝袜 中出 制服 人妻 美腿 | 成人作爱视频 | 精品成人一区二区三区久久精品 | japanese国产在线观看 | 亚洲精品久久久久国产 | 黄色一级生活片 | 少妇性xxxxxxxxx色武功 | 人妻饥渴偷公乱中文字幕 | 国产成a人亚洲精v品在线观看 | 亚洲色图视频在线 | 久久久国产精品视频 | 欧美综合精品 | 伊人一区| 中文字幕91爱爱 | 欧美在线 | 亚洲 | 久久精品99北条麻妃 | 91制服诱惑| 尤物视频在线看 | 久久福利小视频 | 99精品久久精品一区二区 |