WPF DatePicker не использует стиль Material Design - PullRequest
0 голосов
/ 12 июня 2018

Я использую MaterialDesignThemes в своем проекте WPF, и я могу видеть стили MaterialDesign, используемые различными элементами управления WPF, которые я использую.Однако в одной конкретной ситуации я испытываю большие затруднения, пытаясь заставить DatePicker использовать стиль MaterialDesign.Когда я отображаю DatePickers в представлении XAML, оно работает как положено.Разница в том, что в случае, если он не работает, средство выбора даты отображается в коде позади.Ниже мой код.Кто-нибудь может помочь?

var dp = new DateControl()
{
     Margin = new Thickness(0, 0, _fontSize, 0),
     HorizontalAlignment = HorizontalAlignment.Left,
     Question = q,
     IsReadOnly = IsReadOnly || q.IsReadOnly
};
if (dataValue != null)
{
     DateTime dt = DateTime.MinValue;
     if (DateTime.TryParse(dataValue, out dt) && dt > DateTime.MinValue)
     {
           dp.SetSelectedDate((DateTime?)dt);
    }
    else
    {
         dp.Text = dataValue;
    }
}
if (!IsReadOnly)
    dp.AddHandler(DateControl.LostFocusEvent, new RoutedEventHandler(HandleUserResponse));

MaterialDesignThemes.Wpf.ColorZoneAssist.SetMode(dp, ColorZoneMode.PrimaryDark);

return dp;

1 Ответ

0 голосов
/ 13 июня 2018

Вам следует установить свойство Style вашего пользовательского элемента управления:

dp.Style = FindResource("MaterialDesignDatePicker") as Style;

MaterialDesignThemes не знает, что такое DateControl, и не будет автоматически применять какой-либо стиль к такому элементу управления,Неявный стиль, применяемый к DatePicker элементам управления, не наследуется.

...