C# 防止通过键盘XAML突出显示/选择?

C# 防止通过键盘XAML突出显示/选择?,c#,xaml,xna,monogame,C#,Xaml,Xna,Monogame,我正在开发一款基于单一游戏的游戏,它使用XAML作为界面。但是,我在确保空格键不会触发XAML接口(它用于游戏中的其他东西)时遇到了一个问题。现在,我有一个gridview,其中包含项目。当我点击空格时,它会突出显示一个我不希望它执行的元素。我已经让它实际上没有选择项目,但不幸的是无法阻止它突出显示它(然后使用箭头键切换项目) 下面是一段代码: <GridView HorizontalAlignment="Left" Name="Powers" Margin="10,10,0,0" V

我正在开发一款基于单一游戏的游戏,它使用XAML作为界面。但是,我在确保空格键不会触发XAML接口(它用于游戏中的其他东西)时遇到了一个问题。现在,我有一个gridview,其中包含项目。当我点击空格时,它会突出显示一个我不希望它执行的元素。我已经让它实际上没有选择项目,但不幸的是无法阻止它突出显示它(然后使用箭头键切换项目)

下面是一段代码:

  <GridView HorizontalAlignment="Left" Name="Powers" Margin="10,10,0,0" VerticalAlignment="Top" Width="229" Height="163" SelectionMode="None">
        <GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}" Foreground="white" Width="50"></TextBlock>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </GridView.GroupStyle>
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VariableSizedWrapGrid MaximumRowsOrColumns="4" Orientation="Horizontal" ></VariableSizedWrapGrid>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
    </GridView>

有什么方法可以防止通过键盘将项目高举吗?我希望能够将其重新连接到shift键,但一步一个脚印

非常感谢您的帮助


编辑:我在这方面做了一些探索。我已经得到了我想要的工作方式。然而,问题是,当我点击空格时,它会高亮显示并“检查”我选择的网格项,而这不是我想要的。换句话说,我让它高亮显示,好像选择了紫色,但当我点击空格(在游戏中跳跃)时,它会在项目周围放置一个白色框,并在角落中放置一个“复选框”。我想避免这种情况。我提出这个问题是为了获得更高的分数。我很想知道如何解决这个问题。

好的,这里的诀窍实际上是在后端禁用UI elemenet,即gridview。确保元素被选中(我认为默认设置在哪里并不重要)。在构造函数中,禁用元素。因此,您现在有了一个有效的选择,如果需要,可以将其四处移动。但是,它将不会响应任何输入,因为它已禁用。如果您将MonoGame用于Windows 8游戏(因为某些原因,他们决定放弃XNA),那么这是防止通过XAML与UI元素进行任何键盘交互的好方法。您仍然可以通过XNA端获取输入,并以这种方式操作界面。因此,使用禁用的界面,您现在可以从游戏中完全控制UI,而无需任何意外的XAML行为。但是,如果您是为触摸设备执行此操作,这可能是问题,也可能不是问题,但在触摸设备上,管理UI交互要容易得多。

GridView是否具有FocusVisualStyle属性?如果是这样,那么
FocusVisualStyle=“{x:Null}”
help是否有帮助?也许这有帮助:Hmmm,在标记中似乎没有给我这个选项。但是,我确实需要一个视觉样式,但我不希望它被空格键触发。