如何使Canvas
MouseMove
事件仅在我的鼠标位于Canvas
和Canvas
之上时触发?
我有一个TextBox
作为Canvas
的孩子,当我的鼠标移过那个TextBox
时它仍会触发,我希望这不会发生,它应该只会触发例如,当鼠标移动到Canvas
背景/空格区域时。
答案 0 :(得分:1)
您必须在画布PreviewMouseMove上收听该事件的预览版本并设置e.Handled = true。 看看这个网址 https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/routed-events-overview
答案 1 :(得分:1)
如何使画布
class VideoDownload(FilesPipeline): def get_media_requests(self, item, info): def find_best_format(links): quality_order = [ 'mp4', 'webm', 'flv', 'ogv' ] format_links = {} for idx, link in enumerate(links): format_links[link.split('.')[-1]] = (link, idx) for format in quality_order: if format in format_links: del links[format_links[format][1]] return format_links[format][0] link = links.pop() return link if len(item['video_urls']) == 0: # all video downloads failed return None url = find_best_format(item['video_urls']) item['video_downloaded_url'] = url rq = scrapy.Request(url) rq.meta['id'] = '%s-%s' % (item['sid'], item['gid']) if 'gid' in item else item['sid'] return rq def item_completed(self, results, item, info): if len(results) == 0: return item if not results[0][0]: self.get_media_requests(item, info) # <---- I need to resend item to pipeline here return item['video_file'] = results[0][1]['path'].split('/').pop(-1) item['video_file_checksum'] = results[0][1]['checksum'] return item
事件仅在我的鼠标位于MouseMove
和Canvas
之上时触发?
您无法阻止事件被触发,但您可以检查鼠标是否直接位于事件处理程序中的Canvas
区域上,如果不是,则不执行任何操作:
Canvas