Как включить перенос слов для всех подсказок в Silverlight 4? - PullRequest
6 голосов
/ 05 августа 2010

В моем приложении Silverlight 4 у меня есть несколько длинных всплывающих подсказок.По умолчанию эти всплывающие подсказки отображаются одной очень длинной строкой.Например:

        <TextBox Text="Test1" 
        ToolTipService.ToolTip="One tasdg asdg as da sdg asdg  asdg  asdg  asd gas dg a sdg a sdg a sd  a sd g asdasdgasdg    sadgasdgasdg  asdg  asdg  asd   as  a sd g a sdg      asd g asd g asd g asdgasdg     asdgasdg"/>

То, что я хотел бы сделать, это сделать всплывающие подсказки, чтобы они появлялись на нескольких строках.Одним из способов достижения этого является определение всплывающей подсказки с использованием TextBlock.Например:

        <TextBox Text="Test2"> 
        <ToolTipService.ToolTip>
            <TextBlock TextWrapping="Wrap" Width="200" Text="One tasdg asdg as da sdg asdg  asdg  asdg  asd gas dg a sdg a sdg a sd  a sd g asdasdgasdg    sadgasdgasdg  asdg  asdg  asd   as  a sd g a sdg      asd g asd g asd g asdgasdg     asdgasdg"/>             
        </ToolTipService.ToolTip>
    </TextBox>

Необходимость делать это для каждого элемента управления, для которого я хочу определить всплывающую подсказку, кажется большой работой.В идеале я хотел бы определить всплывающие подсказки в виде строк, как в первом примере, а затем применить стиль, глобально примененный ко всем всплывающим подсказкам, что позволит обернуть всплывающие подсказки.Поэтому в моем App.xaml я бы определил что-то вроде этого:

        <Style TargetType="ToolTip">
        <!-- Somehow make all tooltips wrap at a width of 200 -->
    </Style>

Любой совет, как мне поступить?

1 Ответ

14 голосов
/ 06 августа 2010

Вы можете создать неявный стиль для всплывающей подсказки и установить для шаблона содержимого нечто подходящее - например,

<Style TargetType="ToolTip">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock TextWrapping="Wrap" Width="200" Text="{Binding}" />
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

Тогда вы можете использовать что-то вроде:

<TextBox Text="Test2" ToolTipService.ToolTip="abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg " />
...