我只想使用选择器对话框(如下所示)



从Windows Phone的Silverlight工具包中包含的TimePicker控件中获取。通常,此对话框仅在用户单击TimePicker控件列表框时出现。



我想完全绕过列表框,并在按下按钮时启动选择器对话框。

这是可能的还是我必须为自己创建一个自定义控件。

最佳答案

创建从TimePicker继承的类,并使用ClickTemplateButton()模拟点击行为:

public class CustomPicker : TimePicker
{
    public void ClickTemplateButton()
    {
        Button button = (GetTemplateChild("DateTimeButton") as Button);
        ButtonAutomationPeer peer = new ButtonAutomationPeer(button);
        IInvokeProvider provider = (peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider);

        provider.Invoke();
    }
}


创建此类后,在xaml中创建CustomPicker。不要忘记添加xmlns

 xmlns:local="clr-namespace:CustomPickerNamespace"


 <local:CustomPicker x:Name="customPicker" .../>


然后调用即可从代码中显示它:

 customPicker.ClickTemplateButton()

关于c# - 没有文本框的TimePicker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8847367/

10-12 06:47