开发者

How can you turn on word wrapping for all tool tips in Silverlight 4?

开发者 https://www.devze.com 2023-01-10 15:38 出处:网络
In my Silverlight 4 application I have some long tooltips. By default these tooltips appear one one very long line. For example:

In my Silverlight 4 application I have some long tooltips. By default these tooltips appear one one very long line. For example:

        <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"/>

What I would like to do is to make the tooltips wrap around to appear on multiple lines. One way of achieving this is to define the tooltip using a TextBlock. For example:

        <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开发者_C百科 asdasdgasdg    sadgasdgasdg  asdg  asdg  asd   as  a sd g a sdg      asd g asd g asd g asdgasdg     asdgasdg"/>             
        </ToolTipService.ToolTip>
    </TextBox>

Having to do this for every control that I want to define a tooltip seems like a lot of extra work. Ideally what I would like to do is to define the tooltips as strings like the first example, and then have a style globally applied to all ToolTips, which would make the tooltips wrap around. So in my App.xaml, I would define something like this:

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

Any advice on how I might go about doing this?


You can create an implicit style for the tooltip and set the Content Template to something appropriate - e.g.

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

Then you can use something like:

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

精彩评论

暂无评论...
验证码 换一张
取 消