不知各位有沒有發生,在某一個元件上怎麼點都不會發生滑鼠的事件,如果你仔細看那些元件Background不是沒設定就是設為NULL,在Silverlight中如果元件背景色是NULL,是不會產生滑鼠事件的,如以下列這個例子。
Grid1與Grid3都有設定Background顏色,但Grid2沒有設定Background顏色,當我在Grid1與Grid3點擊都很正常,只是在Grid2上點擊卻出現Grid1的訊息。
(Silverlight實際範例,請各位在各Grid上點擊看看)
<!--Grid1-->
<Grid Background="#FFCDCDCD" MouseLeftButtonUp="Grid1_MouseLeftButtonUp">
<TextBlock Text="Grid1" Margin="10,10,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="32" />
<Border Margin="100" BorderBrush="Black" BorderThickness="1">
<!--Grid2-->
<Grid MouseLeftButtonUp="Grid2_MouseLeftButtonUp">
<TextBlock Text="Grid2" Margin="10,10,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="32" />
<!--Grid3-->
<Grid Margin="100" Background="Red" MouseLeftButtonUp="Grid3_MouseLeftButtonUp">
<TextBlock Text="Grid3" Margin="10,10,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="32" />
</Grid>
</Grid>
</Border>
</Grid>
(相關XAML)
其實決解這問題很簡單,只要背景不要是Null就好了,null不等於透明喔,設定如下。
<!--在Silverlight中顏色是由四個16進位組成,第一個16進位是不透明度,之後才是RGB-->
<Grid Background="#00FFFFFF"/>
<!--Transparent = #00FFFFFF-->
<Grid Background="Transparent"/>
所有的容器型元件,Background預設都是NULL如:
- Grid
- Border
- StackPanel
- Canvas
如果要在這些元件上面處理滑鼠事件,請注意這個問題。
标签:
Silverlight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述