2010-12-07 2 views
0

WPF TreeListViewで列のサイズを変更:自動私はこのコードを使用してWPF TreeListView(http://www.codeproject.com/KB/WPF/wpf_treelistview_control.aspx)の列のサイズを変更autoにしようとしています

public void AutoResizeColumns() 
    { 
     GridView gv = this.View as GridView; 

     if (gv != null) 
     { 
      foreach (GridViewColumn gvc in gv.Columns) 
      { 

       if (double.IsNaN(gvc.Width)) 
        gvc.Width = gvc.ActualWidth; 

       gvc.Width = double.NaN; 
      } 
     } 
    } 

しかし、サイズを変更すると、列の幅は行の余白を考慮しないため、単語は10pxのように切り捨てられ、列をダブルクリックすると単語を切り捨てずにサイズが変更されます。

また、私は運でこれを試してみました:

public void AutoResizeColumns() 
    { 
     GridView gv = this.View as GridView; 

     if (gv != null) 
     { 
      foreach (GridViewColumn gvc in gv.Columns) 
      { 

       gvc.Width = gvc.ActualWidth + 10; 
      } 
     } 
    } 

誰もがこの問題を解決する方法を知っていますか?

答えて

0

これを理解しようとしてから、私はついにそれを手に入れました。列幅はActualWidthに設定されていますが、それよりも小さいと想定されます。したがって、列幅をdouble.MaxValueに設定すると、double.NaNに設定すると実際の実際の幅にリサイズされます。ここで

はコードです:

public void AutoResizeColumns() 
{ 
    GridView gv = this.View as GridView; 

    if (gv != null) 
    { 
     foreach (GridViewColumn gvc in gv.Columns) 
     { 
      // Set width to highest possible value 
      gvc.Width = double.MaxValue; 

      // Set to NaN to get the "real" actual width 
      gvc.Width = double.NaN; 
     } 
    } 
} 
関連する問題