Как выделить жирным шрифтом и добавить «*» в TextBlock, когда вкладка может быть сохранена - PullRequest
0 голосов
/ 17 октября 2010

У меня есть вкладки, представляющие документы, что-то вроде в Word.Мой TabControl привязан к ObservableCollection<TabViewModel>.TabViewModel имеет свойство CanSave, указывающее, можно ли сохранить документ.Когда он может быть сохранен, я хочу выделить его жирным шрифтом и поставить префикс «*»Как я могу это сделать?Я думаю, что мне нужно 1-й сделать CanSave a DependencyProperty.И добавить триггер.Но как насчет префикса "*"?

Ответы [ 3 ]

1 голос
/ 17 октября 2010

Вам не нужно делать DependencyProperty; вам просто нужно реализовать INotifyPropertyChanged.

Вы можете привязать свойство к Visibility отдельного <TextBlock>*</TextBlock> и к весу заголовка с помощью триггеров.

0 голосов
/ 17 октября 2010

Вы также можете установить заголовки своих вкладок с помощью привязки ....

<TabControl >
   <TabItem >
          <TabItem.Header>
                 <TextBlock Text="{Binding TabTitle1}" />
          <TabItem.Header>
</TabControl>

, а затем установить заголовок для вашей модели данных

Tab1Title="* " + "some nice tab title";

, вы также можете использовать привязкуустановить шрифт жирным шрифтом ....

FontWeight="{Binding Tab1FontWeight}"
0 голосов
/ 17 октября 2010

Простое (возможно, некрасивое, но определенно должно работать):

void CanSave(....)
{
   bool canSave = GetValueBlahBlah();
   if (tb.IsVisible != canSave)
       tb.Visibility = canSave ? Visibility.Visible : Visibility.Collapsed;
}

tb представляет текстовый блок, который вы хотите показать и скрыть в соответствии с состоянием CanSave.

Вы также можетехочу создать DependencyProperty, как вы сказали, и установить TextBlock s (вам нужно будет использовать отдельный TextBlock для звезды - или использовать Run s, которые можно привязать в WPF 4+) Visibility / FontWeight в соответствии сэто через DataTrigger с.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...