MahApps:Metro SplitButton控件模板

时间:2017-08-30 09:36:17

标签: wpf controltemplate mahapps.metro split-button

默认的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);

2 个答案:

答案 0 :(得分:1)

GitHub上提供了默认ControlTemplatehttps://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可以正常使用提供的控制模板......