我在WPF项目中使用MaterialDesignThemes,我能够看到我正在使用的各种WPF控件正在使用的MaterialDesign样式。但是,在某种特定情况下,我在尝试使用DatePicker来使用MaterialDesign样式时遇到了一些困难。当我在XAML视图中呈现DatePickers时,它按预期工作。不同之处在于,如果它不起作用,日期选择器将在后面的代码中呈现。以下是我的代码。有人可以帮忙吗?
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;
答案 0 :(得分:2)
您应该设置自定义控件的Style
属性:
dp.Style = FindResource("MaterialDesignDatePicker") as Style;
MaterialDesignThemes
不知道DateControl
是什么,并且不会自动将任何样式应用于此类控件。 1}}控件的隐式样式不会被继承。