使用不带TextBox的DatePicker(Silverlight Toolkit)WP7

时间:2013-03-27 02:07:35

标签: c# silverlight windows-phone

我正在为Windows Phone 7.8开发一个应用程序(可能是以后的WP8),需要用户输入日期。我目前正在使用Silverlight Toolkit中的DatePicker控件,因为我喜欢它的视觉样式。

当放置在页面上时,DatePicker控件显示为TextBox,单击该文本框时会打开DatePicker。

无论如何都没有包含TextBox,因为我不需要它并且它使我的表格混乱。也许是一种通过代码而不是通过OnClick事件打开DatePicker的方法?

感谢任何帮助:)

4 个答案:

答案 0 :(得分:1)

您只需编辑DatePicker的控制模板即可更改其外观。

VS 2012默认情况下可以执行此操作(右键单击并编辑模板),否则您需要使用Expression Blend编辑模板。

特别是,控制模板包含一个Button(以及其他内容):

<Button x:Name="DateTimeButton"
        Content="{TemplateBinding ValueString}"
        ...

Buttons Content属性绑定到ValueString。如果删除此绑定(例如),则会留下一个空白按钮。你可以把任何你喜欢的东西放在按钮的内容中......


这些链接应该可以帮助您开始使用Blend:

Styling a control that supports templates

Create or modify a template

Project Rosetta上的指南也很不错。

答案 1 :(得分:0)

可能是,你可以创建DatePicker并隐藏它。 单击项目(要使用的项目)时,将焦点更改为DatePicker。

答案 2 :(得分:0)

我认为你可以实例化DatePickerPage对象并导航到它。据我所知,它有一个Value属性(来自IDateTimePickerPage接口),您可以设置和读取。

我今天无法测试,但明天我一定会尝试,让你知道我发现了什么。同时,您可以转到http://silverlight.codeplex.com/页面并查看工具包的来源。

答案 3 :(得分:0)

触发打开datepicker页面的事件是什么?点击或点击按钮,图像还是什么? 如果是这些中的任何一个,您可以在该控件上放置一个DatePicker,使它们重叠(将它们放在网格的同一行,同一列中)。将DatePicker的不透明度设置为0.然后用户将看不到DatePicker的TextBox,只看到它下面的控件。但是,当用户点击该控件(按钮,图像等)时,他或她实际上会点击不可见的DatePicker,然后会打开datepicker页面。