|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
эксперты, подскажите новичку, как это делается в WPF. Делаю следующий layout. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Модератор: Учимся использовать тэги оформления кода - FAQ не получается добиться желаемого поведения. Хочу чтобы заголовки Expander-ов были всегда видимы. Если один Expander открыт то DataGrid занимал Min(Required, Available) пространства. Здесь available - всё допустимое пространство минус заголовки. Если оба Expander-а открыты то в зависимости от того, если Sum(DataGrid1.Required + DataGrid2.Required) < Available -> Как в StackPanel (другими словами каждый DataGrid размером с Required) в противном случае каждый DataGrid размером с Min(Required, Available / 2) Незнаю как проще описать желаемый результат, но может кто подскажет. Принцип в принципе простой: заполнить все возможное пространство с максимум информации и в тоже время Expander всегда видим. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:05 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
mikron, HeaderedContentControl 2 часть вопроса требует уточнения, нужны нормальные формулировки. Контрол судя по описанию напоминает элемент управления аккордеон. Имеет смысл создать отдельный контрол на базе ItemsControl'а, в который будет укладываться Expander'ы. Можно даже переопределить метод конструктор для генератора. Он будет возвращать сразу тот элемент, что нам нужно. Шаблон элемента можно передать через TemplateBinding. А заголовок оставить либо всегда текстовым, либо добавлять свойства зависимости для шаблона заголовка, вроде в ItemsControl этого нет. Элементы управления в ItemsControl можно размещать на любую панель, даже "собственного производства" Мин размер задать размер заголовка, вообще можно кидать даже в панель Grid и менять у строк\колонок отношение сторон, если не нужен скроллинг в этой области. может я не то понял, тогда сорян ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:44 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
Навскидку. Расположить экспандеры в гриде, высота первой строки - авто, второй - звездочка. Привязать байндингом MaxHeight первого экспандера к половине высоты общего контейнера, но привязка с условием, что второй экспандер развернут. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:53 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro, Почти так. Если 2й развёрнут но его размер меньше половины то MaxHeight первого экспандера больше чем половина, точнее вся свободная область. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 08:55 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
хм. Может тогда проще будет нафигачить свою панель, кода будет мало, но можно реализовать хотелки. Панель сделать не так сложно, как кажется WPF: Шпаргалка для создания панели ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 09:14 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
Shocker.Pro, Буду так делать, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 12:33 |
|
Layout Expander with DataGrid
|
|||
---|---|---|---|
#18+
Вот что пока настрогал. Если кому пригодится - берите. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:55 |
|
|
start [/forum/topic.php?fid=21&msg=39863565&tid=1440308]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 389ms |
0 / 0 |