none
HELP~关于UI键盘事件的问题 RRS feed

  • 问题

  • 小弟我又碰到了两个问题

    问题是这样的:

    1.

    因为根据微软的要求,我们的APP需要实现键盘操作。 我们有一个下拉框菜单是这么实现的:

    <ToggleButton x:Name="xCurrentMediaType" HorizontalContentAlignment="Left" VerticalAlignment="Center" FontSize="56" FontWeight="Light" IsEnabled="True" Width="220" Style="{StaticResource SortToggleButtonStyle}" Content="{Binding Path=SelectedItem, ElementName=xMediaTypeListBox}"/> <Popup x:Name="MediaTypeListBoxPopup" HorizontalOffset="0" VerticalOffset="0" IsOpen="{Binding IsChecked, ElementName=xCurrentMediaType, Mode=TwoWay}" > <ListBox x:Name="xMediaTypeListBox" HorizontalAlignment="Left" Margin="3,0,0,0" VerticalAlignment="Top" Width="304" FontWeight="Light" FontSize="28" Style="{StaticResource DMSListBoxStyle}" ItemContainerStyle="{StaticResource MediatypeListBoxItemStyle}" Visibility="{Binding IsChecked, ElementName=xCurrentMediaType, Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}"> </ListBox>

    </

    Popup>

    就是一个ToggleButton ,用来显示POPUP控件里的东西以及响应用户的点击和键盘事件控制POPUP的弹出与收回。 单击这个ToggleButton 之后,POPUP会弹出,再次点击,POPUP会消失。就是说POPUP的ISOPEN是绑定到ToggleButton 的ISCHECK属性上的。

    这套东西点击的时候没有问题,但是当我焦点移到ToggleButton 上并且在ToggleButton 的KEYDOMN事件里响应ENTER键弹出POPUP的时候,再敲一次一次回车ToggleButton 的ISCHECK设为FALSE的时候,POPUP并没有像想象中的消失掉,但是打印出POPUP的ISOPEN属性确实是设置为FALSE了,但就是没关闭。

    2. 怎样将焦点锁定在弹出的POPUP里边以及POPUP里边的LISTBOX不响应键盘的ENTER事件? 我看到本地的XBOX MUSIC程序弹出了之后,焦点只能在POPUP框里,并不会转移到其他的控件上去。而我们的却会 0 0 。

    唉 求解析啊 要不又得加班加到爆了 5555



    2012年9月27日 4:31

答案