SDK DatePicker IsTabStop被忽略

时间:2013-08-20 21:12:59

标签: c# silverlight xaml user-interface datepicker

标准版(SL4)SDK DatePicker似乎无法识别我在其上设置IsTabStop="False"的时间。我知道输入为TextBox的嵌入式System_Windows_Controls_Primitives:DatePickerTextBox如果您向下钻取到其模板已经设置为IsTabStop="False"这会让人感到困惑?

父模板的Setter声明模板为IsTabStop="False",所以我的问题是?为什么/如何被忽略?

我在模板中的TemplateBinding上尝试了IsTabStopSystem_Windows_Controls_Primitives:DatePickerTextBox,但是当你尝试通过 shift + tab 它不会反向标签?

所以我有点困惑......我甚至尝试通过Style在实例上通过TargetType DatePicker.Resources声明设置它,似乎无法访问开玩笑。

有没有人遇到过这个?我很惊讶,因为我以前没有,并且很想知道原因和/或解决方法。或者,如果它可能是这种情况的独特之处。谢谢!

PS - 我见过的其他解决方法仅适用于WPF,与此问题无关。

1 个答案:

答案 0 :(得分:1)

作为测试,我创建了一个新的SL 5项目(抱歉,没有安装4个)并删除了一个TextBox,两个DatePickers和另一个TextBox,这样我就能看到标签操作。

然后我在第一个DatePicker上将IsTabStop设置为False,就像你说的那样,它会被忽略。

然后我制作了模板的副本,找到了DatePickerTextBox并添加了IsTabStop =“False”并再次运行它。

然后在向前或向后跳转时跳过DatePicker。所以这对你有用。

<Primitives:DatePickerTextBox x:Name="TextBox"
                                                      BorderBrush="{TemplateBinding BorderBrush}"
                                                      BorderThickness="{TemplateBinding BorderThickness}"
                                                      IsTabStop="False"
                                                      Background="{TemplateBinding Background}"
                                                      Grid.Column="0"
                                                      Padding="{TemplateBinding Padding}"
                                                      SelectionBackground="{TemplateBinding SelectionBackground}" />

默认模板会忽略IsTabStop,因为SDK中缺少应该将其绑定到DatePickerTextBox的代码。

格雷格