【问题标题】:datepicker in popup directly open when I click a button?当我单击按钮时,弹出窗口中的日期选择器直接打开?
【发布时间】:2014-03-06 10:22:19
【问题描述】:

作为described,我在我的 xaml 文件中输入了一个 datepicker

当我运行页面时,datepicker 显示如下:

然后我必须点击日期选择器才能进入选择页面,如下所示:

现在

点击按钮需要直接打开全屏日期选择器选择页面

地址提供了一种我可以导航到选择页面的方式,

但我不知道怎么做?

【问题讨论】:

  • 当你点击哪个按钮?
  • 就在我运行电话页面的时候,然后点击日期选择器下方的A按钮打开选择页面...@Toni Petrina
  • 带 (x) 的第一轮?
  • 好吧,让我检查一下@Toni Petrina

标签: windows-phone-8 datepicker timepicker


【解决方案1】:

我是海报。

我自己找到解决办法

用我们的自定义 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是细节

@Mario Galván

希望对你有帮助

【讨论】:

  • 获取 btn=null。你能帮我么?我正在开发 WP 8.1 silverlight 应用程序。
  • Button btn = (GetTemplateChild("FlyoutButton") as Button);这将解决按钮空引用问题。
猜你喜欢
  • 1970-01-01
  • 2018-12-18
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多