默认的SplitButton工作正常,但是当我尝试使用它时,会出现控件模板问题。 如果我尝试使用反射获取控件模板(使用ConstructorInfo),我将获得SplitButton的空模板。如果我尝试编辑模板副本'在XAML Designer中,我得到的副本不起作用(比如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);
答案 0 :(得分:1)
GitHub上提供了默认ControlTemplate
:https://github.com/MahApps/MahApps.Metro/blob/336f7dfc4bda2d0eba8aa270737ca3c11d45128c/src/MahApps.Metro/MahApps.Metro/Themes/SplitButton.xaml
MahApps.Metro
是开源的,因此您可以根据需要下载源代码。
答案 1 :(得分:0)
将MahApps Metro更新为1.5.0后,SplitButton可以正常使用提供的控制模板......