当我不设置我的面板背景时,我无法获得鼠标事件。为什么这种行为? 默认情况下,我可以通过将透明背景设置为null来在面板上获取鼠标事件。 Background null和Transparent有什么区别?Wpf面板背景问题
3
A
回答
7
当Background=null
渲染时不会发出任何绘图命令MILCore,并且它不指望在命中测试控制的整个区域。
当Background=Transparent
,它渲染时发出一个普通的绘图命令MILCore,它也控制命中测试的整个区域。
Brushes.Transparent
实际上是一个普通的刷子与它的α(不透明度)的信道设置为零。正因为如此,在大多数情况下,它就像普通的颜色一样。如果背景是普通颜色,则会检测到鼠标点击,因此它们也会被检测到Brushes.Transparent
。
这就是说,存在代码检测Brushes.Transparent和完全省略绘图命令优化它带走了几个地方。例如,这发生在窗口透明与操作系统的交互中:操作系统没有被通知任何涂有Brushes.Transparent
的区域是应用程序的一部分,因此单击它不会执行任何操作。这是通过特殊外壳Brushes.Transparent
为此目的完成的。
相关问题
- 1. WPF ToggleButton背景问题
- 2. Django模板背景问题
- 3. datagrid(WPF)中的背景色问题
- 4. WPF中的背景属性问题
- 5. 背景问题
- 6. 半透明面板背景
- 7. ExtJS&Css面板背景的
- 8. 背景面板在asp.net
- 9. C渲染面板背景#
- 10. 问题获得背景页面
- 11. 完成封面背景图片问题
- 12. IE7背景问题
- 13. Css背景问题
- 14. android背景问题
- 15. AppMobi背景问题
- 16. AVPlayer背景问题
- 17. cu3er背景问题
- 18. UITableView背景问题
- 19. UIAlertView背景问题?
- 20. 简单的WPF'面板'问题
- 21. 虚拟化WPF包装面板问题
- 22. WPF面板标题标题
- 23. WPF DataGrid背景
- 24. WPF TreeViewItem背景
- 25. WPF页面背景加载中...如何?
- 26. IE6背景位置(?)问题
- 27. 背景问题 - 扩展
- 28. WordPress的背景问题
- 29. 背景图像问题
- 30. CSS背景重复问题
是否在MILCore上执行所有渲染? – viky 2009-11-12 09:07:07
MILCore是微软的WPF本地(非托管)部分的名称,用于维护渲染数据,通过通道编组它(用于远程处理)并调用Direct3D执行实际渲染。最准确的说,它是你的显卡的驱动程序和硬件来完成实际的渲染,如果显卡无法实现它,则会回退到软件。视频卡的驱动程序通过Direct3D定义的接口访问,Direct3D由WPF的非托管角色“MILCore”调用。 – 2009-11-12 18:44:02
感谢您的一切帮助 – viky 2009-11-13 04:36:08