【发布时间】:2014-01-06 12:01:51
【问题描述】:
我正在用 xaml 编写日期选择器样式 日历弹出窗口由日期选择器文本框旁边的日历按钮切换 我希望在单击/触摸文本框时也切换日历
当向 datepicker 样式添加事件触发器时,日历会在触摸文本框时切换,但仅在鼠标单击时显示并保持打开状态,当单击/触摸 datepicker 日历按钮时,日历会立即打开和关闭。
<EventTrigger RoutedEvent="TextBox.PreviewMouseDown">
<EventTrigger.Actions>
<BeginStoryboard x:Name="myBeginStoryboard">
<Storyboard x:Name="myStoryboard">
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsDropDownOpen">
<DiscreteBooleanKeyFrame KeyTime="00:00:00"
Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
我的问题:
- 有没有比使用事件触发器更好的方法来实现所需的行为?
- 当事件触发器只设置日历可见时,如何在触摸控件时显示和隐藏日历?
- 是否可以在 xaml 中将反转的“IsDropDownOpen”值分配给此属性?
- 或者是否可以在 xaml 中使用条件语句(如果?)来处理隐藏和显示?
【问题讨论】:
-
在您的情况下,您需要决定隐藏日历的事件(动作),可能是双击?我尝试了事件
GotFocus和LostFocus,但没有帮助。简要回答您的问题(这是我的看法):1- 更好,正在寻找某人。我认为您可以应用附加的行为,但也必须通过操作确定关闭日历;2- 取决于动作,关闭日历;3- 不,但您可以设置反转的时间,4- 不。
标签: wpf xaml datepicker