2016-09-12 5 views
1

Я уверен, что есть что-то простое, с чем я не обращаю внимания, но для жизни я не смог понять это. Я только что начал использовать пользовательский интерфейс MahApps Mmetro, который применил стиль ко всем моим вкладкам. Однако на некоторых вкладках мне нужна возможность сделать некоторые строки форматирования так заголовки объявляются так:Tab Наложение заголовка заголовка заголовка

<TabItem Content="{Binding TaskList}"> 
    <TabItem.Header> 
     <TextBlock Text="{Binding Count, StringFormat=Tasks (\{0\})}" /> 
    </TabItem.Header> 
</TabItem> 

Tab Элементы с заголовками, определенных как это не наследуют Metro UI стайлинг. Есть ли способ применить стиль ко всем заголовкам?

+0

'' –

+0

@Chris W. Я пробовал это, но он не работает. Он отображает только счет, но не строку «Задачи». – AXG1010

+0

О, ну, закройте его 'StringFormat = 'Задачи (\ {0 \})'}' –

ответ

2

К сожалению, BindingBase.StringFormat только используется, когда цель свойство типа string, но TabItem.Header имеет тип object, поэтому связывание непосредственно с StringFormat указанного не дает ожидаемого результата. К счастью, вы можете использовать TabItem.HeaderStringFormat свойство для форматирования текста заголовка, сохраняя при этом оригинальный стиль:

<TabItem Header="{Binding Count}" HeaderStringFormat="Tasks ({0})" (...) /> 

виду, что хотя HeaderStringFormat используется только тогда, когда значение Header отображается в виде текста (он игнорируется, когда Header содержит контроль и т. д.).

+0

Ах спасибо. Я пропустил свойство HeaderStringFormat! – AXG1010