|
TabControl как в VS
|
|||
---|---|---|---|
#18+
Добрый день. Пытаюсь сделать TabControl как в VS с возможностью выбора вкладок из выпадающего меню. Так же хотелось бы иметь разные TabItem (без возможности закрытия, с возможностью закрытия, и с возможностью закрытия + пометкой если что-то поменялось) чтобы менять TabItem - делаю шаблон (пока просто с текстом, потом туда же добавлю кнопку закрытия и пометку об изменении) Код: xml 1. 2. 3.
для меню и общего вида делаю стиль. Код: xml 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.
так вот. если TabControl имеет статические страницы то все работает ок. если я страницы загружаю извне то меню не заполняется и не переключает вкладки Код: 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.
Код: xml 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.
я так понимаю что проблема при заполнении пунктов меню Код: xml 1. 2. 3. 4.
Вопрос как праильно заполнить меню и как его завтасить работать. в стиле не хочется привязываться к конкретной ViewModel. Спасибо за ответы! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2015, 11:05 |
|
TabControl как в VS
|
|||
---|---|---|---|
#18+
авторTabControl как в VS глянь https://avalondock.codeplex.com/ может поможет. там и в исходниках можно поковыряться ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 01:53 |
|
TabControl как в VS
|
|||
---|---|---|---|
#18+
Шайтан, Спасибо. Не совсем то что надо, но как вариант :) товарищи, может про стили кто-нибудь все таки подскажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 12:41 |
|
TabControl как в VS
|
|||
---|---|---|---|
#18+
В самом VisualStudio это сделано так: В основе лежит DocumentGroupControl из Microsoft.VisualStudio.Shell.ViewManager.dll (пространство имен: Microsoft.VisualStudio.PlatformUI.Shell.Controls), который судя по всему наследуется от GroupControl, который скорее всего наследован от ItemsControl или его потомков. его шаблон состоит из : Microsoft.VisualStudio.PlatformUI.Shell.Controls.DocumentTabPanel - это панель для заголовков куда ItemsControl (DocumentGroupControl ) запихивает DocumentTabItem'ы, правее этой панели расположена кнопка Microsoft.VisualStudio.PlatformUI.Shell.Controls.DropDownButton - это кнопка с выпадающим меню, в самой кнопке в ресурсах есть CollectionViewSource который судя по всему содержит представление списка вкладок которое извлекается из ItemsSource И ContentPresenter'а для отображения текущего элемента управления, свойство Content которого меняется через DocumentGroupControl когда пользователь выбирает другую вкладку (там даже связывания нет, как не странно, хотя связывание было бы как по мне удобнее). Если хочешь делать как в VS можешь начинать делать :) p.s. контролы кстати public и в сборке они не обфусцированы, по этому можно спокойно посмотреть их код. А устроены они очень и очень просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2015, 13:43 |
|
|
start [/forum/topic.php?fid=21&msg=39069257&tid=1440792]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
129ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 236ms |
0 / 0 |