silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 5 Grid组的MouseLeave响应大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

用Silverlight 5作个用户控件,即是用Grid画几个格子,分别显示几张透明图片。效果是显示中间那张,点击显示的图片后将其它几张图片一起显示出来,鼠标立刻这个用户控件范围后自动隐藏点击后显示出来的图片 xaml代码如下: <Grid x:Name="oViewImg" Height="280" Width="280"> <Grid.RowDefinitions
@H_674_6@
@H_674_6@

用Silverlight 5作个用户控件,即是用Grid画几个格子,分别显示几张透明图片效果显示中间那张,点击显示图片后将其它几张图片一起显示出来,鼠标立刻这个用户控件范围后自动隐藏点击后显示出来的图片

xaml代码如下:

@H_450_23@ <Grid x:Name="oViewImg" Height="280" Width="280"> <Grid.RowDeFinitions> <RowDeFinition Height="37"></RowDeFinition> <RowDeFinition></RowDeFinition> <RowDeFinition Height="37"></RowDeFinition> </Grid.RowDeFinitions> <Grid.columnDeFinitions> <columnDeFinition Width="37"></columnDeFinition> <columnDeFinition></columnDeFinition> <columnDeFinition Width="37"></columnDeFinition> </Grid.columnDeFinitions> <Image x:Name="img01" source="/img/img01.png" Grid.Row="0" Grid.column="0"/> <Image x:Name="img02" source="/img/img02.png" Grid.Row="0" Grid.column="2"/> <Image x:Name="img02" source="/img/img03.png" Grid.Row="2" Grid.column="0"/> <Image x:Name="img03" source="/img/img04.png" Grid.Row="2" Grid.column="2"/> <Image x:Name="oImage" source="/img/temp/img.png" Grid.column="1" Grid.Row="1" Height="206"/> </Grid>@H_801_24@


目标是:初始隐藏img01-img04只显示oImage图片,点击oImage后再显示出这次张图片,然后鼠标离开oViewImg范围后隐藏img01-img04。

我很理想的写下以下代码

        public scLampItem(mLabmpItem labmp)
        {
            this.oImage.MouSELEftButtonDown += oyiboyCode_MouSELEftButtonDown;
           this.oViewImg.MouSELEave += oyiboyCode_MouSELEave;</span>
        }

        void oyiboyCode_MouSELEftButtonDown(object sender,MouseButtonEventArgs E)
        {
            this.img00.Visibility = System.Windows.Visibility.Visible;
            this.img02.Visibility = System.Windows.Visibility.Visible;
            this.img20.Visibility = System.Windows.Visibility.Visible;
            this.img22.Visibility = System.Windows.Visibility.Visible;
        }
        void oyiboyCode_MouSELEave(object sender,MouseEventArgs E)</span>
        {
            this.img00.Visibility = System.Windows.Visibility.Collapsed;
            this.img02.Visibility = System.Windows.Visibility.Collapsed;
            this.img20.Visibility = System.Windows.Visibility.Collapsed;
            this.img22.Visibility = System.Windows.Visibility.Collapsed;
        }

@H_801_24@ 

然后抓狂的事来了。鼠标离开oImage就立刻隐藏了四张图片,而不是我想象的那样,移出了oViewImg的范围才触发MouSELEave事件。问了度娘后才知道,Grid没有背景/背景色的情况下是不能触发事件的,也就是鼠标移到oImage和img01-img02之间的空白区域时就触发了MouSELEave事件。为此猛钻牛角尖去找鼠标位置搜索妄想通过计算鼠标的位置来进行判断鼠标是否在Grid范围之类的办法去来触发隐藏操作。忙乎了一上午,中午吃饭时突然想到...没背景和背景色的情况下不能触发,我给它个背景色不就行了吗。然后吃完饭后写下了以下代码

        public scLampItem(mLabmpItem labmp)
        {
            this.oImage.MouSELEftButtonDown += oyiboyCode_MouSELEftButtonDown;
            this.oViewImg.MouSELEave += oyiboyCode_MouSELEave;
        }

        void oyiboyCode_MouSELEftButtonDown(object sender,MouseButtonEventArgs E)
        {
            this.img00.Visibility = System.Windows.Visibility.Visible;
            this.img02.Visibility = System.Windows.Visibility.Visible;
            this.img20.Visibility = System.Windows.Visibility.Visible;
            this.img22.Visibility = System.Windows.Visibility.Visible;
	    //给Grid一个完全透明的背景色,以保证整Grid范围都能触发事件
	    this.oViewImg.SETVALue(Grid.BACkgroundProperty,new SolidColorBrush(Color.FromArgb(0,255,255)));
        }
        void oyiboyCode_MouSELEave(object sender,MouseEventArgs E)
        {
            this.img00.Visibility = System.Windows.Visibility.Collapsed;
            this.img02.Visibility = System.Windows.Visibility.Collapsed;
            this.img20.Visibility = System.Windows.Visibility.Collapsed;
            this.img22.Visibility = System.Windows.Visibility.Collapsed;
            //移除Grid背景色,保证img01-img04隐藏后的区域不会触发事件
	    this.oViewBigImg.ClearValue(Grid.BACkgroundProperty);
        }@H_801_24@ 

为这个折腾了一上午,亏死了,作为经验记录一下,省得下次还这样浪费脑力和时间

大佬总结

以上是大佬教程为你收集整理的Silverlight 5 Grid组的MouseLeave响应全部内容,希望文章能够帮你解决Silverlight 5 Grid组的MouseLeave响应所遇到的程序开发问题。

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

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