标准版(SL4)SDK DatePicker似乎无法识别我在其上设置IsTabStop="False"
的时间。我知道输入为TextBox
的嵌入式System_Windows_Controls_Primitives:DatePickerTextBox
如果您向下钻取到其模板已经设置为IsTabStop="False"
这会让人感到困惑?
父模板的Setter
声明模板为IsTabStop="False"
,所以我的问题是?为什么/如何被忽略?
我在模板中的TemplateBinding
上尝试了IsTabStop
到System_Windows_Controls_Primitives:DatePickerTextBox
,但是当你尝试通过 shift + tab 它不会反向标签?
所以我有点困惑......我甚至尝试通过Style
在实例上通过TargetType
DatePicker.Resources
声明设置它,似乎无法访问开玩笑。
有没有人遇到过这个?我很惊讶,因为我以前没有,并且很想知道原因和/或解决方法。或者,如果它可能是这种情况的独特之处。谢谢!
PS - 我见过的其他解决方法仅适用于WPF,与此问题无关。
答案 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的代码。
格雷格