默认 SplitButton 可以正常工作,但是当我尝试使用它时,会出现控件模板问题。如果我尝试通过反射(使用 ConstructorInfo)获取控制模板,我会得到 SplitButton 的空控制模板。如果我尝试在 XAML 设计器中“编辑模板副本”,我得到的副本不起作用(例如 ItemsSource 未绑定到 SplitButton 的 ListBox 中的元素,因为它始终为空)。我的 MahApps Metro 版本是 1.4.3.0
这是我尝试获取SplitButton的控制模板的方法:
MahApps.Metro.Controls.SplitButton ctl = sender as MahApps.Metro.Controls.SplitButton;
Type type = ctl.GetType();
if (type == null)
return;
// Instantiate the type.
ConstructorInfo info = type.GetConstructor(System.Type.EmptyTypes);
Control control = (Control)info.Invoke(null);
// Get the template.
ControlTemplate template = control.Template;
// Get the XAML for the template.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create(sb, settings);
XamlWriter.Save(template, writer);