我有一個網格和一個按鈕。我希望能夠按向下箭頭選擇一行,然後點擊按鈕,然後按向下箭頭選擇下一行,然後單擊按鈕。即使左鍵單擊時也保留網格焦點狀態
但是,當我點擊按鈕時,網格鍵盤焦點不再在行上。
下面是一個例子。在這幅圖中,我選擇了第三行。我想要的行爲是:我用鼠標點擊按下我,然後按鍵盤向下箭頭一次選擇第四行。相反,當我按向下箭頭頂部單元格有一個框架,當我再次按下時,頂部行被選中。
我應該如何去創造我所需要的行爲?我試着編輯後面的代碼來明確地關注網格,但那不起作用。
下面是該示例的完整代碼。
<Window x:Class="WpfTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<XmlDataProvider x:Key="DcCharacters">
<x:XData>
<Characters xmlns="">
<Character HeroName="Catwoman" Identity="Selina Kyle" />
<Character HeroName="Batman" Identity="Bruce Wayne" />
<Character HeroName="Starman" Identity="Jack Knight" />
<Character HeroName="BlueBeetle" Identity="Jaime Reyes" />
</Characters>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid
Grid.Row="0"
ItemsSource="{Binding Source={StaticResource DcCharacters},
XPath=//Characters/Character}"
AutoGenerateColumns="False"
IsReadOnly="True"
>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding [email protected]}" />
<DataGridTextColumn Binding="{Binding [email protected]}" />
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Row="1">
<Button Margin="3,3,3,3" Width="Auto" Height="Auto" HorizontalAlignment="Left">_Press Me!</Button>
</StackPanel>
</Grid>
</Window>
+1因爲它有效。我唯一的問題是,如果我想要的話,我不能在該按鈕上標籤。 (讓我們看看我們是否可以實現一切:-) –
只有一件事出現在我的腦海裏 - 把'Focusable'綁定到某個屬性上。當你在桌上時 - 它是虛假的。當你離開 - 它的真實。 – stukselbax