<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Silverlight DataGrid自適應數據

      silverlight的DataGrid如果改成fill模式 那么當數據超長也不會出現橫向滾動條 如果改成按單元格模式 如果數據較短又會出現空白的地方

      所以我自己寫了個算法 目前實現了以list為數據源的形式 根據數據長短 標題長短 當前實際寬度進行了算法運算 并進行了調整 不多說直接上代碼

      public static class DataGridHelper
          {
              private static double withunit = 7.2;//單個英文所占像素大小
              private static int hzwithunit = 3;//漢字與應為對比值(1個漢字相當與多少個英文)
              public static void initGrid<T>(List<T> lml,DataGrid DataGrid)
              {
                  Dictionary<int, int> dic = new Dictionary<int, int>();
                  Dictionary<int, int> dic2 = new Dictionary<int, int>();
                  for (int j = 0; j < lml.Count; j++)
                  {
      
                      DataGrid.SelectedIndex = j;
                      DataGrid.UpdateLayout();
                      DataGrid.ScrollIntoView(lml[j], DataGrid.Columns[0]);
                      for (int i = 0; i < DataGrid.Columns.Count; i++)
                      {
                          T mi = lml[j];
                          string s1 = ((TextBlock)DataGrid.Columns[i].GetCellContent(mi)).Text.ToString();
                          string s2 = DataGrid.Columns[i].Header.ToString();
                          int n1 = 0;
                          int n2 = 0;
                          for (int mm = 0; mm < s1.Length; mm++)
                          {
                              if (((int)s1[mm]) > 127)
                              {
                                  n1 = n1 + hzwithunit;
                              }
                              else
                              {
                                  n1 = n1 + 1;
                              }
                          }
                          for (int mm = 0; mm < s2.Length; mm++)
                          {
                              if (((int)s2[mm]) > 127)
                              {
                                  n2 = n2 + hzwithunit;
                              }
                              else
                              {
                                  n2 = n2 + 1;
                              }
                          }
                          if (!dic.Keys.Contains(i))
                          {
      
                              if (n1 > n2)
                              {
                                  dic.Add(i, n1);
                              }
                              else
                              {
                                  dic.Add(i, n2);
                              }
                          }
                          else
                          {
                              int s = 0;
                              if (n1 > n2)
                              {
                                  s = n1;
                              }
                              else
                              {
                                  s = n2;
                              }
                              if (dic[i] < s)
                              {
                                  dic[i] = s;
                              }
                          }
                      }
                  }
                  DataGrid.SelectedIndex = 0;
                  DataGrid.UpdateLayout();
                  DataGrid.ScrollIntoView(lml.First(), DataGrid.Columns[0]);
                  setColumnsWith(dic,dic2,DataGrid);
              }
              private static void setColumnsWith(Dictionary<int, int> dic, Dictionary<int, int> dic2, DataGrid DataGrid)
              {
                  int n = 1;
                  foreach (int i in dic.Values)
                  {
                      if (n > i)
                      {
                          n = i;
                      }
                  }
                  foreach (int k in dic.Keys)
                  {
                      if (dic[k] % n == 0)
                      {
                          if (!dic2.Keys.Contains(k))
                          {
                              dic2.Add(k, dic[k] / n);
                          }
                      }
                      else
                      {
                          if (!dic2.Keys.Contains(k))
                          {
                              dic2.Add(k, (dic[k] / n) + 1);
                          }
                      }
                  }
                  int n1 = 0;
                  foreach (int v in dic2.Values)
                  {
                      n1 = n1 + v;
                  }
                  if (n1 * withunit < DataGrid.ActualWidth)
                  {
                      for (int i = 0; i < DataGrid.Columns.Count; i++)
                      {
                          DataGrid.Columns[i].Width = new DataGridLength(dic2[i], DataGridLengthUnitType.Star);
                      }
                  }
                  else
                  {
                      for (int i = 0; i < DataGrid.Columns.Count; i++)
                      {
                          DataGrid.Columns[i].Width = new DataGridLength(dic2[i] * withunit);
                      }
                  }
              }
          }

      這里面當數據最大長度比列標題長度短的時候就會采用列寬 當整體寬度小于DataGrid寬度的時候就會按照權重進行分配。調用的時候直接將數據源和DataGrid對象傳進去就行了。另外如果是其他類型數據源 各位也可以根據實際需求改一下 很簡單的。

      posted @ 2017-07-07 09:59  我丫的是條魚  Views(434)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 99麻豆久久精品一区二区| 国产精品一区二区久久毛片| 国产精品尤物午夜福利| 国产精品一区在线免费看| 亚洲精品二区在线播放| 成人网站免费观看永久视频下载| mm1313亚洲国产精品| 欧美国产日韩在线三区| 极品少妇无套内射视频| 欧产日产国产精品精品| 884aa四虎影成人精品| 色综合中文综合网| 国产又爽又黄的激情视频| 亚洲欧洲精品日韩av| 最新日韩精品中文字幕| 日韩福利片午夜免费观着| 国产精品午夜福利在线观看| 国产午夜一区二区在线观看| 少妇午夜啪爽嗷嗷叫视频| 午夜男女爽爽影院在线| 亚洲午夜伦费影视在线观看| 久久精品夜夜夜夜夜久久| 国产精品久久久久久久9999| 狠狠综合久久av一区二| 久久成人成狠狠爱综合网| 男女激情一区二区三区| 免费国产一区二区不卡| 麻豆tv入口在线看| 精品国产乱码久久久久夜深人妻| 国产亚洲精品综合99久久| 日韩一区二区在线观看视频| 国产亚洲精品黑人粗大精选 | 亚洲成av人最新无码不卡短片| 无极县| 国产不卡免费一区二区| 日日摸夜夜添夜夜添国产三级| 中文字幕波多野不卡一区| 亚洲一级特黄大片一级特黄| 国产高清一区二区三区视频| 国产人妻熟女呻吟在线观看| 我国产码在线观看av哈哈哈网站|