如described我在我的 xaml 文件中输入一个 datepicker
当我运行页面时,日期选择器显示如下:
然后我必须点击日期选择器才能进入选择页面,如下所示:
现在
我需要在单击按钮时直接打开全屏日期选择器选择页面
该地址提供了一种方式,我可以导航到选择页面,
但我不知道怎么办?
最佳答案
我是海报。
我自己找到解决方案
使用我们的自定义 DatePickerCustom 类覆盖 DatePicker 类。创建新类“DatePickerCustom.cs”
public class DatePickerCustom : DatePicker
{
public void ClickTemplateButton()
{
Button btn = (GetTemplateChild("DateTimeButton") as Button);
ButtonAutomationPeer peer = new ButtonAutomationPeer(btn);
IInvokeProvider provider = (peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider);
provider.Invoke();
}
}
然后在mainpage.xaml.cs中
private DatePickerCustom datePicker;
// Constructor
public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
// create datePicker programmatically
if (this.datePicker == null)
{
this.datePicker = new DatePickerCustom();
this.datePicker.IsTabStop = false;
this.datePicker.MaxHeight = 0;
this.datePicker.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(datePicker_ValueChanged);
LayoutRoot.Children.Add(this.datePicker);
}
}
void datePicker_ValueChanged(object sender, DateTimeValueChangedEventArgs e)
{
// now we may use got value from datePicker
TextBlock1.Text = this.datePicker.ValueString;
}
这样,当执行点击或单击等操作时,将显示全屏日期选择器页面
private void button1_Click(object sender, RoutedEventArgs e)
{
this.datePicker.ClickTemplateButton();
}
ps:timepicker也可以做同样的事情
ps2:here就是细节
@马里奥·加尔万
希望对你有帮助
关于windows-phone-8 - 当我单击按钮时,弹出窗口中的日期选择器会直接打开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221529/