大佬教程收集整理的这篇文章主要介绍了Silverlight 4的是鼠标右键菜单的实现(三),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第三种方法,还是使用微软的@H_927_27@menu构造函数,不过是在xaml界面中通过样式来使用它。不过笔者只在ArcGIS的中图形样式中使用成功了。其它的地方没有尝试,不过在SuperMap的feature应用理论上是可以成功。
Ⅰ菜单类
①
Xaml页面
<UserControl x:Class="TDWs.CLIENt.UI.SuperMapUI.RegionContextMenu"@H_696_85@
@H_696_85@ xmlns="http://scheR_786_11845@as.microsoft.com/winfx/2006/xaml/presentation"
@H_696_85@ xmlns:x="http://scheR_786_11845@as.microsoft.com/winfx/2006/xaml"
@H_696_85@ xmlns:d="http://scheR_786_11845@as.microsoft.com/expression/blend/2008"
@H_696_85@ xmlns:@H_640_92@mc="http://scheR_786_11845@as.openxmlformats.org/markup-compatibility/2006"
@H_696_85@ @H_491_20@mc:Ignorable="d"
@H_696_85@ >
<Grid x:Name="LayoutRoot">@H_696_85@
<Ellipse x:Name="ellHot" Height="10" Width="10" Fill="Green" Opacity="0"></Ellipse>@H_696_85@
</Grid>@H_696_85@
</UserControl>
②
using@H_696_85@ System.Collections.Generic;
using@H_696_85@ System.Windows;
using@H_696_85@ System.Windows.Controls;
using@H_696_85@ System.Windows.Documents;
using@H_696_85@ System.Windows.Input;
using@H_696_85@ System.Windows.Media;
using@H_696_85@ System.Windows.Media.Animation;
using@H_696_85@ System.Windows.Shapes;
using@H_696_85@ TDWs.CLIENt.UI.Query;
using@H_696_85@ Chaos.Controls.Windows;
using@H_696_85@ TDWs.CLIENt.UI.Edit;
@H_696_85@
namespace@H_696_85@ TDWs.CLIENt.UI.SuperMapUI
@H_696_85@ public partial class RegionContextMenu : UserControl
@H_696_85@ public RegionContextMenu()
@H_696_85@ InitializeComponent();
@H_696_85@ OnPropertyChanged(this,new DependencyPropertyChangedEventArgs() { });
@H_696_85@ }
@H_696_85@
@H_696_85@ IDictionary<String,object> _ContextDatasource = null;
@H_696_85@
@H_696_85@ public static DependencyProperty _MenuDatasourceProperty = DependencyProperty.Register("ContextDatasource",
@H_696_85@ typeof(IDictionary<String,object>),
@H_696_85@ typeof(RegionContextMenu),
@H_696_85@ new PropertyMetadata(new PropertyChangedCallBACk(OnPropertyChanged)));
@H_696_85@
@H_696_85@
@H_696_85@ public IDictionary<String,object> ContextDatasource
@H_696_85@ get { return _ContextDatasource; }
@H_696_85@ set { _ContextDatasource = value; }
@H_696_85@ }
@H_696_85@
@H_696_85@ private static void OnPropertyChanged(DependencyObject d,DependencyPropertyChangedEventArgs E)
@H_696_85@ if (e.NewValue != null)
@H_696_85@ RegionContextMenu dd = new RegionContextMenu();
@H_696_85@ d = dd;
@H_696_85@ dd.ContextDatasource = e.NewValue as IDictionary<String,object>;
@H_696_85@ dd.bindContextMenu();
@H_696_85@
@H_696_85@ }
@H_696_85@ }
@H_696_85@
@H_696_85@ private void BindContextMenu()
@H_696_85@ ContextMenu menu = new ContextMenu();
@H_696_85@
@H_696_85@ @H_957_388@menuItem regionInfo = new @H_957_388@menuItem();
@H_696_85@ regionInfo.Header = "人口基本信息"@H_696_85@;
@H_696_85@ regionInfo.Click += new RoutedEventHandler(regionInfo_Click);
@H_696_85@ @H_491_20@menu.Items.Add(regionInfo);
@H_696_85@
@H_696_85@ ContextMenuservice.SetContextMenu(ellHot,menu);
@H_696_85@ }
@H_696_85@
@H_696_85@ void regionInfo_Click(object sender,RoutedEventArgs E)
@H_696_85@ if (this.ContextDatasource.ContainsKey("Adcd"))
@H_696_85@ RegionBaseInformationUI baseInfo = new RegionBaseInformationUI(this.ContextDatasource["Adcd"].ToString());
@H_696_85@ WindosEx.ShowDialog("人口基本信息"@H_696_85@,700,500,baseInfo);
@H_696_85@ }
@H_696_85@ }
@H_696_85@ }
@H_696_85@}
Ⅱ该右键菜单的使用,它是作为一种样式传该
@H_696_85@
<esri:MarkerSymbol x:Key="SiteContextMenuSymbol" OffsetX="10" OffsetY="10">
<esri:MarkerSymbol.ControlTemplate>
<my:RegionContextMenu ContextDatasource="{Binding Attributes}"></my:RegionContextMenu>
</esri:MarkerSymbol.ControlTemplate>
</esri:MarkerSymbol>
<esri:SimpleRenderer x:Key="SiteContextMenuRenderer" Symbol="{Staticresource SiteContextMenuSymbol}"></esri:SimpleRenderer>
以上是大佬教程为你收集整理的Silverlight 4的是鼠标右键菜单的实现(三)全部内容,希望文章能够帮你解决Silverlight 4的是鼠标右键菜单的实现(三)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。