的AccentColor Theme爲組合框,其包括設置模板屬性創建一個implicit Style。此模板使用帶有自定義樣式的ToggleButton,由於某種原因(樣式?)ContentPresenter包含在ContentControl之內,默認IsTabStop屬性爲true。將此屬性明確設置爲false可恢復單個選項卡在控件上移動的直觀行爲。
<ContentControl VerticalAlignment="Center" IsTabStop="False">
<ContentControl.Foreground>
<SolidColorBrush x:Name="ContentPresenterWrapperColor" Color="{StaticResource BaseColor1}" />
</ContentControl.Foreground>
<ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</ContentControl>
標準的ComboBox模板不包括此ContentControl這解釋了行爲的差異。我對AccentColor主題不熟悉,不知道是否最好全部刪除ContentControl,或者如果它是自定義視覺樣式所必需的。
FYI Silverlight Spy是在行爲追查問題有很大的幫助,哪怕是一個有點貴,恕我直言:-)
剛剛發現一個重複的問題http://stackoverflow.com/questions/4061821/ silverlight-button-control-tab-stop-twice-mystery,所以這應該可能被刪除。 – 2012-03-28 03:55:16
在付出更多注意力之後,這個其他問題是關於一個Button而不是一個ComboBox,所以也許它不應該被認爲是重複的,即使問題的根源(自定義隱式樣式)是相同的。 – 2012-03-28 05:18:13