Использование свойства ContentStringFormat с TextBlock в ControlTemplate - PullRequest
2 голосов
/ 09 января 2009

У меня есть простой шаблон ControlTemplate для кнопок, который создает для них стиль ссылок:

 <ControlTemplate x:Key="LinkTemplate" TargetType="{x:Type Button}">
    <TextBlock Text="{TemplateBinding Content}">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="Foreground" Value="Blue" />
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="TextDecorations" Value="Underline" />
                        <Setter Property="Cursor" Value="Hand" />
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Foreground" Value="Gray" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
</ControlTemplate>

Это работает нормально, но проблема возникает, когда я хочу использовать свойство ContentStringFormat для форматирования содержимого кнопок. Поскольку TextBlock не имеет свойства ContentStringFormat, я не могу использовать привязку шаблона.

Я также пытался использовать StringFormat при привязке содержимого кнопки, но, похоже, он игнорируется, и исходный текст содержимого передается в TextBlock в привязке шаблона.

Полагаю, я мог бы использовать преобразованное значение и передать ему ContentStringFormat в качестве параметра, но это не так.

Есть ли способ сделать это, используя чисто XAML, или мне просто использовать конвертер значений?

Ответы [ 2 ]

2 голосов
/ 28 марта 2009

Я понятия не имею, что такое ContentStringFormat, но вы можете использовать ContentPresenter вместо TextBlock, чтобы использовать это свойство.

0 голосов
/ 03 марта 2009

Я не нашел документов для "ContentStringFormat", поэтому я могу упустить что-то тривиальное здесь.

Как насчет использования BindableRun Фил Форте в ControlTemplate, чтобы можно было отформатировать цикл. Любо Благоев создал элемент управления, который делает именно это.

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