Widzę dziwne zachowanie, jeśli chodzi o ostrość i nawigację po klawiaturze. W poniższym przykładzie mam proste ItemsControl, który został szablon, tak, że przedstawia listę CheckBoxes związane z ItemsSource.Dziwne zachowanie ostrości dla prostych elementów WPF Sterowanie
<ItemsControl FocusManager.IsFocusScope="True"
ItemsSource="{Binding ElementName=TheWindow, Path=ListOStrings}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Z jakiegoś dziwnego powodu FocusManager.IsFocusScope = „True” cesja powoduje skupienie klawiatury, aby nie zostać ustawiony podczas sprawdzania pole wyboru poprzez kliknięcie myszką i skupić się wyskoczyć z ItemsControl gdy czek pole jest sprawdzane za pomocą klawisza spacji na klawiaturze. Oba symptomy zdają się wskazywać na dziwną nawigację, która dzieje się, gdy pole wyboru jest zaznaczone, ale mam trudności z dostaniem się na dół.
Ten problem występuje, jeśli mogę ustawić dowolny element nadrzędny górę drzewa wizualnej jako zakres ostrości przy użyciu tej metody. Jeśli usuniemy FocusManager.IsFocusScope = "True", problemy znikną. Niestety widzę ten problem w większym projekcie, w którym nie mogę po prostu usunąć tych zakresów ostrości, nie martwiąc się o inne konsekwencje związane z ogniskiem.
Czy ktoś mógłby mi wytłumaczyć dziwne zachowanie, które widzę? Czy to błąd, czy po prostu zupełnie czegoś brakuje?
+1 dla wyjaśnienia problemu. Właśnie dodałem implementację dołączonego zachowania IsEnhancedFocusScope. –
Jedyne, czego wciąż nie rozumiem, biorąc pod uwagę to wyjaśnienie, to że jeśli weźmiemy inny przykład, w którym ustawiam siatkę na zakres ostrości z grupą dzieci, które są przyciskami i polami wyboru, kiedy klikam jedną z nich pola wyboru Nie widzę dziwnej utraty zachowania skupienia, które widzę w moich ItemsControl. Dlaczego ma to wpływ tylko na pola wyboru w ItemControl, czy ma to coś wspólnego z ScrollViewer, ItemsPresenter, ...? – jpierson