WPFアプリケーションでホストしていた古いWinformsコントロールがあります。 コントロールは内部でSystem.Windows.Forms.ListView
を使用し、このListViewはグループ機能を使用します。WPFでホストされているListViewのグループを有効にします
問題は、このコントロールがWPFでホストされているときにグループが表示されないことです。 Winforms appとWPF appでホストされているListViewのプロパティを手動で比較しました。 ListViews ShowGroups
プロパティは両方ともtrueです。
ただし、GroupsEnabled
というプロパティがあり、コントロールがWinformsでホストされている場合はtrue、WPFでホストされている場合はfalseです。 私が見つけた定義here:
internal bool GroupsEnabled
{
get {
return this.ShowGroups && groups != null && groups.Count > 0 && ComctlSupportsVisualStyles && !VirtualMode;
}
}
VirtualMode
がComctlSupportsVisualStyles
が、両方のホスティングおよびWPFアプリのための偽Winformsのための真であるために偽です。同じソースからのComctlSupportsVisualStyles
の
コード:
private bool ComctlSupportsVisualStyles {
get {
if(!listViewState[LISTVIEWSTATE_comctlSupportsVisualStylesTested])
{
listViewState[LISTVIEWSTATE_comctlSupportsVisualStylesTested] = true;
listViewState[LISTVIEWSTATE_comctlSupportsVisualStyles] = Application.ComCtlSupportsVisualStyles;
}
return listViewState[LISTVIEWSTATE_comctlSupportsVisualStyles];
}
}
私はWPFのコードで何とかApplication.ComCtlSupportsVisualStyles
を設定する必要があると思います。
これはSystem.Windows.Forms.Application
で、System.Windows.Application
ではありません。
これを行う方法はありますか?