silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 4的是鼠标右键菜单的实现(三)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  第三种方法,还是使用微软的Menu构造函数,不过是在xaml界面中通过样式来使用它。不过笔者只在ArcGIS的中图形样式中使用成功了。其它的地方没有尝试,不过在SuperMap的feature应用理论上是可以成功。 Ⅰ菜单类 ①    Xaml页面 <UserControl x:Class="TDWs.CLIENt.UI.SuperMapUI.RegionContextMenu"     xm

 

第三种方法,还是使用微软的@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>

Xaml页面CS文件

 

using@H_696_85@ System;

using@H_696_85@ System.Collections.Generic;

using@H_696_85@ System.Linq;

using@H_696_85@ System.Net;

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@{

@H_696_85@    public partial class RegionContextMenu : UserControl

@H_696_85@    {

@H_696_85@        public RegionContextMenu()

@H_696_85@        {

@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@        {

@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@        {

@H_696_85@            if (e.NewValue != null)

@H_696_85@            {

@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@        {

@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@        //人口基本信息@H_696_85@

@H_696_85@        void regionInfo_Click(object sender,RoutedEventArgs E)

@H_696_85@        {

@H_696_85@            if (this.ContextDatasource.ContainsKey("Adcd"))

@H_696_85@            {

@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>

            <ControlTemplate>

                <my:RegionContextMenu ContextDatasource="{Binding Attributes}"></my:RegionContextMenu>

            </ControlTemplate>

        </esri:MarkerSymbol.ControlTemplate>

    </esri:MarkerSymbol>

<esri:SimpleRenderer x:Key="SiteContextMenuRenderer" Symbol="{Staticresource SiteContextMenuSymbol}"></esri:SimpleRenderer>

大佬总结

以上是大佬教程为你收集整理的Silverlight 4的是鼠标右键菜单的实现(三)全部内容,希望文章能够帮你解决Silverlight 4的是鼠标右键菜单的实现(三)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。