如何创建Silverlight的一个鼠标悬停状态的堆叠面板?
-
12-09-2019 - |
题
我想创建它改变其不透明性的鼠标悬停状态时,鼠标在堆叠面板。
我已经建立的状态下,并且创建的堆栈面板MOUSE_ENTER事件,并在后面CS文件中的代码,我已经在上MOUSE_ENTER事件下面的代码
MouseOver.Begin();
当鼠标悬停是连环画的名字,但是当我的鼠标悬停在堆栈面板或甚至单击堆栈面板上,什么都没有发生,我错过什么?
由于
PlayKid
解决方案
我想出自己。
使用此代码:
VisualStateManager.GoToState
谢谢大家。
其他提示
您确认事件被触发(你已经正确连接好事件)?尝试使用一个消息框,什么检查。 (System.Windows.MessageBox.Show()
)
您确定故事板工作良好在其他情况下(试图在页面加载或东西吗?)
如果这两个工作,请解释你如何去有关添加事件处理程序。
在我的经验,挂钩一MOUSE_ENTER事件面板不起作用,因为在面板里面的内容最终窃取事件。我通常的解决办法是建立覆盖我想鼠标事件,并保持该项目在视觉树的顶部区域透明的目标。所以XAML看起来是这样的:
<StackPanel x:Name="ContentPanel" SizeChanged="ContentPanelSizeChanged" >
< /*Some content here */ >
</StackPanel>
<Canvas x:Name="HitTarget" Mouse_Enter="HitTargetMouseEnter" />
和然后ContentPanelSizeChanged处理程序设置HitTarget画布的大小是的StackPanel的实际(渲染)的大小。同样的事情适用于MOUSEBUTTONDOWN事件,我会假定它为鼠标滚轮事件也是如此。我建议尝试塞特希的故障诊断建议,但如果你不能得到火(此时我会假设是问题)的情况下,让这个尝试。
不隶属于 StackOverflow