デフォルトのSplitButtonは正常に機能しますが、操作しようとするとコントロールテンプレートの問題が発生します。 (ConstructorInfoを使って)リフレクトでコントロールテンプレートを取得しようとすると、SplitButtonのコントロールテンプレートが空になります。 XAMLデザイナーで「テンプレートのコピーを編集」しようとすると、CopyStyleが動作しません(ItemsSourceは常に空のため、SplitButtonのListBoxの要素にバインドしません)。 MahAppsメトロの私のバージョンは、ここでは1.4.3.0MahApps:Metro SplitButtonコントロールテンプレート
である私は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);
感謝を提供するコントロールテンプレートで正常に動作しますが、私はすでにMahAppsデモアプリケーション(ButtonsExample)から同じソースを得ました。しかし、私はこのコントロールテンプレートを持っている問題は、Clipboardを使用可能な参照として認識しないことです(おそらくバージョン1.4.3.0?) – VladacusB
なぜ、ClipBorderをBorderに置き換えないのですか? – mm8
...あなた自身のものを提供するのではなく、役に立つ回答を投票してみませんか?もちろん、デフォルトのテンプレートが動作します。 – mm8