2

Silverlight DatePickerを使用する場合、デフォルトで日表示で開きます。ユーザーが誕生日を選択する必要がある場合、最初に年を選択して、最初にツリーを上に移動せずにすぐにドリルダウンできれば、非常にユーザーフレンドリーになります。ユーザーの約70%は、カレンダーヘッダーを使用して「上」に移動する方法さえ理解していないと推測できるので、これを回避できれば素晴らしいと思います。

日付ピッカーがデフォルトで開くレベルを操作する方法はありますか?

誕生日を選択するためのSilverlightのよりユーザーフレンドリーなコントロールはありますか?

4

1 に答える 1

2

それに直面して、あなたはこのようなことをすることができるはずです:-

        <sdk:DatePicker Name="datePicker1" >
            <sdk:DatePicker.CalendarStyle>
                <Style TargetType="sdk:Calendar">
                    <Setter Property="DisplayMode" Value="Decade" />
                </Style>
            </sdk:DatePicker.CalendarStyle>
        </sdk:DatePicker>

ドロップダウンに表示されるカレンダーの他のほとんどすべての機能については、これが機能します。ただし、DataPickerの内部のコードは、ドロップダウンが開かれるたびにに設定DisplayModeされます。Monthしたがって、醜いハックに頼る必要があります:-

private void datePicker1_CalendarOpened(object sender, RoutedEventArgs e)
{

    DatePicker picker = (DatePicker)sender;

    if (!picker.SelectedDate.HasValue)
    {
        var popup = picker.Descendents().OfType<Popup>().FirstOrDefault();
        if (popup != null)
        {
            var item = popup.Child.Descendents().OfType<Calendar>().FirstOrDefault();
            if (item != null)
                item.DisplayMode = CalendarMode.Decade;
        }
    }
}

拡張メソッドの実装については、この回答を参照してください。Descendents

于 2010-08-10T16:48:24.100 に答える