2012-12-13 62 views
3

我正在使用基於MonoGame的遊戲,它使用XAML作爲界面。然而,我有一個問題,確保空格鍵不會觸發XAML接口(它用於遊戲中的其他內容)。現在我有一個包含項目的gridview。當我點擊空間時,它突出了一個我不希望它做的元素。我已經知道它並沒有真正選擇該項目,但不幸的是無法阻止它突出顯示它(然後使用箭頭鍵切換項目)。防止通過鍵盤XAML突出顯示/選擇?

下面是一些代碼,這是否:

<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> 

有沒有什麼辦法來防止通過鍵盤項目的highliting?我希望能夠將它重新連接到換檔鍵,但一次只能一步。

任何幫助,非常感謝!

編輯:我捅了這個。我已經選擇以我想要的方式工作。然而,問題在於,當我點擊空間時,它突出顯示並「檢查」我選擇的網格物品,這不是我想要的。換句話說,我將它突出顯示,就好像選擇了紫色一樣,但是當我點擊空間時(爲了在我的遊戲中跳躍),它會在項目周圍放置一個白色框,並在角落中放置一個「Check」。我想避免這種情況。我正在提出這個問題的更高點。真的很想知道如何解決這個問題。

+0

GridView是否具有FocusVisualStyle屬性?如果是,那麼'FocusVisualStyle =「{x:Null}」'help? – idursun

+0

也許這有助於:http://stackoverflow.com/questions/3046988/wpf-datagrid-disable-selected-row-styles-or-row-selecting – dognose

+0

嗯,似乎沒有給我在標籤中的選項。不過,我確實需要一種視覺風格,但我不希望它被空格鍵觸發。 –

回答

2

好吧,這裏的訣竅實際上是禁用UI elemenet即。在後端的gridview。確保元素被選中(我認爲這不重要,你設置默認爲)。在你的構造函數中,禁用該元素。結果,你現在有了一個有效的選擇,如果需要的話可以轉移。但是,自從其禁用後,它將不會響應任何輸入。如果您使用MonoGame for Windows 8遊戲(因爲他們因爲某種原因決定放棄XNA),那麼這是防止通過XAML與UI元素進行任何鍵盤交互的好方法。你仍然可以通過XNA端獲得輸入,並以這種方式操縱你的界面。因此,使用禁用的界面,您現在可以完全控制遊戲中的用戶界面,而不會出現任何意外的XAML行爲。但是,如果你正在爲觸摸設備做這件事,它可能會也可能不會成爲問題,但是在觸摸設備上,無論如何它都更容易管理UI交互。

相關問題