小弟我又碰到了两个问题
问题是这样的:
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