silverlight学习笔记(4) 画图

      silverlight里画图形很方面。

      1,GraphicsLayer图层相当于一个画布。

      2,要有2个元素:Geometry和Symbol。

           下面是画线的例子:

     Xaml代码:

      <Grid x:Name="LayoutRoot" Background="White">
        <Grid.Resources>
            <esri:SimpleLineSymbol x:Key="DrawLineSymbol" Color="Green" Width="4"/>
            <esri:SimpleFillSymbol x:Key="DrawFillSymbol" Fill="#3300ff00" BorderBrush="Green" BorderThickness="2"/>
            <esri:SimpleLineSymbol x:Key="DefaultLineSymbol" Color="Red" Width="4"/>
            <esri:SimpleFillSymbol x:Key="DefaultFillSymbol" Fill="#33ff0000" BorderBrush="Red" BorderThickness="2"/>
        </Grid.Resources>
        <esri:Map x:Name="MyMapDefault">
            <esri:ArcGISTiledMapServiceLayer ID="ShadeRelief" Opacity="0.75"
                    Url=">
            <esri:GraphicsLayer x:Name="graphicsLayer" ID="MyGraphicsLayer"></esri:GraphicsLayer>
        </esri:Map>
    </Grid>

 

  Cs代码:

        Draw MyDrawObject = new Draw();
        private Symbol _activeSymbol = null;
        public MainPage()
        {
            InitializeComponent();

            MyDrawObject = new Draw(MyMapDefault)
            {
                LineSymbol=LayoutRoot.Resources["DrawLineSymbol"] as LineSymbol,
                FillSymbol=LayoutRoot.Resources["DrawFillSymbol"] as FillSymbol
            };
            MyDrawObject.DrawComplete+=new EventHandler<DrawEventArgs>(MyDrawObject_DrawComplete);

            MyDrawObject.DrawMode = DrawMode.Polyline;
            _activeSymbol = LayoutRoot.Resources["DefaultLineSymbol"] as Symbol;
            MyDrawObject.IsEnabled = true;
        }
        private void MyDrawObject_DrawComplete(object sender, DrawEventArgs args)
        {
            GraphicsLayer graphicsLayer = MyMapDefault.Layers["MyGraphicsLayer"] as GraphicsLayer;
           
            Graphic graphic = new Graphic()
            {
                Geometry = args.Geometry,
                Symbol = _activeSymbol,
            };
            graphicsLayer.Graphics.Add(graphic);
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目描述: 该项目是一款计算机平面几何学的绘图工具。 内置了一些交互的样式库,供在线浏览。 项目使用Silverlight 2.0(可以使用Microsoft Expression v3 beta 转换成 silverlight v3.0) 以及 C#3.0进行开发(在silverlight 和 wpf 上各自实现了一个版本)。核心的绘图引擎具备了良好的灵活性和扩展性,方便开发人员添加新的图形和功能。 我们将面临的工作类型: 将已有的之前无法顺利迁移到web上的桌面应用程序(庞大交互复杂,有一定安全要求或者比较华丽总之就是Ajax无法胜任)使用Silverlight 3.0 技术迁移到web上。 对于一些良好的Flash应用的迁移。(这属于站坑拉屎,谁先占住坑的谁就是大爷) 对于现有AJAX应用进行更加丰富的扩展。 我们将面临的挑战: 开发WinForm程序的大爷们终于可以灵活的涉足于Web界而不需要搞令人沮丧到要无限次重构直到自己写http协议的Asp.net框架。他们来了。 欢迎Flex阵营的朋友投身的到Silverlight3.0 的圈子中,思路一致(不好听的说法叫抄袭)很好迁移,你们也来吧。 之所以能带来更加丰富的用户体验,是因为那纠葛交错的WinForm消息循环体系,任何的动作都可以轻易牵动应用全身,这远远区别于Web应用开发(因为很多时候我们选择--我刷我刷我刷刷刷)。我们的优势: XAML = html,XAML(资源文件) = CSS,C#(Ruby or Python even JS) = JS。 可见,你依然可以像开发web一样开发Silverlight应用只要大脑思路一转。 Silverlight 最终还是要放置在网站之上(我们首先不考虑Out of browser功能),所以熟悉HTML熟悉JS我们可以方便的让Silverlight与 HTML交互。 赘述到此,我想大家应该已经明白, 这款Silverlight 在线本版的平面几何图形画图板便是经典的WinForm 到 Web的迁移。当你解读Silverlight代码和WPF代码的时候,你将会发现这并没有什么重大的不同之处(所以现在出现了Silverlight 和 WPF的兼容性类库,甚至出现了Silverlight 和 WPF的转换程序)。或者我们不妨悲剧的理解这本就是一个WebForm应用。我们带着强烈的愤怒怀疑这个微软的结构师本就是开发了10+年的WinForm(顺便仰慕一下)。 Main/SilverlightClient下为综合演示Demo,用VS2008打开后运行(或右键:在浏览器中打开)即可看到效果 自带了一些在线Demo,其他文件夹中还有些其他几何模型,有兴趣的可以自行研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值