Silverlight 5 Grid组的MouseLeave响应

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

xaml代码如下:

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


目标是:初始隐藏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;
        }

然后抓狂的事来了。鼠标离开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, 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);
        }

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


内容概要:本文介绍了如何使用Python识别图片和扫描PDF中的文字。首先,文章讲解了使用Spire.OCR for Python库来识别图片中的文字,包括安装库、配置OCR模型路径和语言设置、扫描图片以及保存识别后的文本。其次,详细描述了从图片中提取文字及其坐标位置的方法,使用户不仅能够获取文本内容,还能知道文本在图片中的具体位置。最后,文章还介绍了如何结合Spire.PDF for Python将PDF文件转换为图片格式,再通过OCR技术从中提取文字,适用于处理扫描版PDF文件。文中提供了完整的代码示例,帮助读者理解和实践。 适合人群:对Python编程有一定基础,希望学习或提高光学字符识别(OCR)技术的应用开发者,尤其是需要处理大量图片或PDF文档中文字信息的工作人员。 使用场景及目标:① 开发者可以利用这些方法自动化处理图片或PDF文档中的文字信息,提高工作效率;② 实现从非结构化数据(如图片、扫描件)到结构化数据(如文本文件)的转换,便于后续的数据分析和处理;③ 提供了一种解决纸质文档数字化的有效途径,特别是对于历史档案、书籍等资料的电子化保存。 其他说明:需要注意的是,OCR的准确性很大程度上取决于图片的质量,清晰度高、对比度好的图片可以获得更好的识别效果。此外,不同OCR库可能对特定语言或字体的支持程度不同,选择合适的库和配置参数能显著提升识别精度。在实际应用中,建议先进行小规模测试,优化参数后再大规模应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值