Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Silverlight Business Application自定义导航菜单时出现问题_C#_Silverlight_Xaml_Menu_Navigation - Fatal编程技术网

C# 从Silverlight Business Application自定义导航菜单时出现问题

C# 从Silverlight Business Application自定义导航菜单时出现问题,c#,silverlight,xaml,menu,navigation,C#,Silverlight,Xaml,Menu,Navigation,我正在使用Silverlight业务应用程序模板,但我需要自定义主页布局以匹配客户端现有的ASP.NET项目模式。我能够创建导航菜单,突出显示所选项目。但是,当发生MouseEnter事件时,所选菜单项的样式将变为MouseOver VisualState的样式。在MouseLeave上,所选菜单项将变为正常的VisualState。此行为适用于解决方案的默认菜单,但我的修改可能缺少某些内容。代码定义如下。谢谢 私有无效超链接按钮\u mouseenterfieve对象发送器,MouseEven

我正在使用Silverlight业务应用程序模板,但我需要自定义主页布局以匹配客户端现有的ASP.NET项目模式。我能够创建导航菜单,突出显示所选项目。但是,当发生MouseEnter事件时,所选菜单项的样式将变为MouseOver VisualState的样式。在MouseLeave上,所选菜单项将变为正常的VisualState。此行为适用于解决方案的默认菜单,但我的修改可能缺少某些内容。代码定义如下。谢谢

私有无效超链接按钮\u mouseenterfieve对象发送器,MouseEventArgs e{ HyperlinkButton hb=发送方为HyperlinkButton; 如果hb.NavigateUri.ToString==ContentFrame.CurrentSource.ToString VisualStateManager.GoToStatehb,ActiveLink,true; }
如果是MouseEnter事件,您可以尝试在EventHandler上设置按钮的MouseOver visualatate,如果是MouseLeave事件,则可以将其重置


我想我应该设置两个事件处理程序,而不是两个事件都设置一个,然后您可以轻松地设置鼠标悬停状态和活动状态。

谢谢您的即时回复。当鼠标进入或离开时,我实际上希望所选菜单保持在ActiveLink VisualState上。但当前的行为是,所选菜单在MouseEnter上更改为MouseOver VisualState,然后在MouseLeave上更改为普通VisualState。客户端行为似乎覆盖了我从代码背后设置的VisualState。哦,现在我终于明白了你的问题:没关系对我来说更难,因为我的英语不是我的母语。我猜这两个故事板都是从你的按钮开始的,ActiveLink先完成,然后完成鼠标移动,也许正因为如此,它会回到正常状态。你可以尝试扩展故事板的时间段,看看它们是如何运行的。我尝试将ActiveLink的持续时间增加到0.05秒,但结果仍然是一样的。顺便说一句,LinkState不是HyperlinkButton的标准ViewStateGroup的一部分,它只使用以下代码设置:是的,我从您的代码和XAML中看到,猜测可能是从CommonStates组中删除normal和MouseOver visualstates,将它们添加到您的linkstates中,然后从事件处理程序中手动更改它们。这是我现在能想到的最好的办法,但我很快就看了一下