2012-01-18 4 views
2

Проект, над которым я работаю, создает серию вкладок для каждого элемента, открытого пользователем. Для некоторых вкладок, в частности, некоторые образы базы данных и вычисления занимают длительный период времени. Я пытался определить простой способ предупредить пользователя, когда вкладка готова, и понял, что индикатор выполнения будет таким же хорошим или лучше, чем другие способы, которые я рассматривал.Внедрение ProgressBar в заголовок TabItem в WPF

Мне интересно, есть ли способ встроить индикатор выполнения за заголовком текста TabItem или мне нужно будет создать собственный CustomControl. Я не знаю, как это сделать, однако, я думаю, что некоторые примеры последних существуют в проекте, поэтому я мог бы попытаться понять это.

ответ

2

Вы можете легко определить расположение TabItem. Этот фрагмент XAML создаст TabControl с одним TabItem, где заголовок TabItem имеет ProgressBar с TextBlock над ProgressBar.

Конечно, пожалуйста, настроить этот код XAML, чтобы на самом деле сделать это хорошо выглядеть :-D

<TabControl> 
    <TabItem> 
     <TabItem.Header> 
      <Grid> 
       <ProgressBar Width="100" /> 
       <TextBlock Text="Some Tab"/> 
      </Grid> 
     </TabItem.Header> 
    </TabItem> 
</TabControl> 
+0

Вы можете использовать сетку вместо холста, а также. – Tyrsius

+0

@Tyrsius На самом деле, я почти никогда не использовал Canvas, я просто подумал, что нужно получить TextBlock поверх ProgressBar (у меня нет элементов пользовательского интерфейса, уложенных друг на друга в моем пользовательском интерфейсе, поэтому я не знаю). Похоже, что Grid позволяет вам складывать их также, и я всегда предпочитаю Grid для элемента Canvas. – docmanhattan

+0

Кажется, что все нормально, только вопрос, я должен сейчас разобраться в ширине. TabItem - это ControlTemplate для TabControl.Resources ... Или просто сделайте его обработкой Grid и Width :) –