2010-01-28 121 views
0

我确定我在这里很容易丢失一些东西。对于C#/ WPF的Timepicker来说,几乎所有的互联网搜索指向这个网页:http://jobijoy.blogspot.com/2007/10/time-picker-user-control.html,因此我认为它可以正常工作。但是,当我将其复制/粘贴到用户控件中并运行时,该控件显示为应该显示,但是当我单击数字并按向上或向下时,什么都不会发生。即使在调试模式下,KeyDown事件的开关盒上有一个断点,也没有任何反应。它没有注册KeyDown事件。它应该专注于包含TextBlock的网格,所以我尝试将KeyDown更改为TextBlock,但无济于事。我似乎无法得到这个工作! :(我正在使用Visual Studio 2008.似乎无法使Timepicker工作(C#/ WPF)

回答

0

我认为你是控制没有得到专注,出于某种原因,我也尝试过,并且事件也不会为我开火This post might offer some insight.手动将焦点设置在Loaded事件的用户控件并没有为我工作,虽然

该做的工作,我在做以下所有的唯一的事情:

  • 改变的TextBlock到一个TextBox并在那里移动事件(使用文本框的焦点非常明显)
  • 在事件t中更改演员t ØFrameworkElement的(这是Name属性来自),而不是电网
  • 改变的情况下,以文本框的名字(而非网格的名称)
  • 改变事件的PreviewKeyDown(获取光标键进行注册)

当然,这只会让事件触发并正确注册,这些值似乎不会显示出来(甚至在我更改代码之前),但它会处理事件不发射的具体问题。

+0

非常感谢您的帮助!我只是将TextBlocks更改为TextBoxs,将KeyDown更改为PreviewKeyDown,现在它起作用了!但是,DependencyProperties存在无限递归错误。 – Brandon 2010-01-29 13:47:41

1

WPF Toolkit中包含一个官方的Microsoft DateTimePicker控件。这将是框架的一部分,在.NET 4.0中

+0

我相信DatePicker是包含的内容,它不是DateTimePicker。 – Brandon 2010-01-29 14:52:39

+0

你是对的!我知道它在那里,但从来没有真正使用它,我很惊讶它只能做日期。我使用Actipro WPF Studio中的DateTimeEditor,但这不是免费的。 – 2010-01-29 15:23:24

+2

是的,这个博客表示它应该是非常简单的,我相信如果我理解包装和依赖和数据绑定,但我是C#和WPF的新手。我在Stack Overflow和其他类似的网站上看到过其他问题,例如“我在哪里可以找到TimePicker”,而大多数答案是“您可以轻松推出自己的产品”并指向此博客。但是,这个博客的代码不起作用,如果你不理解这些概念,你就会陷入困境。大声笑 – Brandon 2010-01-29 15:36:54

0

有一个datepicker和Silverlight 4中

一个TimePicker如果你愿意,你可以创建自己的控制与那些或简单地用每一个分开。