我在我的 WPF 项目中使用 MaterialDesignThemes,我能够看到我正在使用的各种 WPF 控件使用的 MaterialDesign 样式。但是,在一种特定情况下,我在尝试让 DatePicker 使用 MaterialDesign 样式时遇到了很大的困难。当我在 XAML View 中呈现 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;
最佳答案
您应该设置自定义控件的 Style
属性:
dp.Style = FindResource("MaterialDesignDatePicker") as Style;
MaterialDesignThemes
不知道什么是 DateControl
,也不会自动将任何样式应用到此类控件。应用于 DatePicker
控件的隐式样式不会被继承。
关于c# - WPF DatePicker 没有使用 Material Design 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50825527/