2017-08-22 4 views
0

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; 
    } 
} 

VirtualModeComctlSupportsVisualStylesが、両方のホスティングおよび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ではありません。
これを行う方法はありますか?

答えて

-1

アプリケーションのvisualスタイルを有効にすると、問題を修正する必要があります。

System.Windows.Forms.Application.EnableVisualStyles(); 

ComCtrl32ライブラリのバージョン6が使用されていない限り、視覚的なスタイルがある、技術的に(有効になっていない限り、WinFormsのListViewコントロールがグループをサポートしていません。ビジュアルスタイルをサポートするのに必要なものと同じバージョン)。

も参照してください。How to: Enable Visual Styles in a Hybrid Application

関連する問題