TimePicker без TextBox - PullRequest
       7

TimePicker без TextBox

2 голосов
/ 13 января 2012

Я хочу использовать только диалоговое окно выбора (показано ниже)

enter image description here

из элемента управления TimePicker, включенного в набор инструментов Silverlight для Windows Phone. Обычно это диалоговое окно появляется только тогда, когда пользователь щелкает по списку элементов управления TimePicker.

enter image description here

Я бы хотел полностью обойти список и запустить диалог выбора при нажатии кнопки.

Возможно ли это, или мне придется создать собственный элемент управления для себя.

1 Ответ

4 голосов
/ 13 января 2012

Создайте класс, унаследованный от 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();
    } 
}

Когда этот класс создан, создайте CustomPicker в xaml. Не забудьте добавить xmlns

 xmlns:local="clr-namespace:CustomPickerNamespace"


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

И после звонка вы можете показать его по коду:

 customPicker.ClickTemplateButton()
...