BrianKE
BrianKE

Reputation: 4185

WPF ToolTip Text Alignment

I have the following ListViewItem:

                    <GridViewColumn Width="{Binding ActualWidth, 
                                              RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, 
                                              Converter={StaticResource MathConverter}, ConverterParameter=(x/10)*1}">
                        <GridViewColumn.Header>
                            <GridViewColumnHeader Content=" Total Fees "
                                                  HorizontalContentAlignment="Right" />
                        </GridViewColumn.Header>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding GarnishmentTotals.TotalFees, StringFormat={}{0:c}}"
                                           TextAlignment="Right" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

The Style for this item is as follows:

    <Style x:Key="MultipleGarnishmentsStyle" TargetType="ContentControl">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Garnishments.Count, Converter={StaticResource GreaterThanEqualToBooleanConverter}, ConverterParameter=2}" Value="True"
                         h:TriggerTracing.TriggerName="MultipleGarnishmentsStyle_Trigger1"
                         h:TriggerTracing.TraceEnabled="True">
                <!-- Leave the content alone and just change the format string -->
                <Setter Property="TextBlock.FontWeight" Value="UltraBold" />
                <Setter Property="ToolTip" Value="Employee has multiple garnishments. Double click to view details." />
            </DataTrigger>
        </Style.Triggers>
    </Style>

I am having an issue with the alignment of the text within the ToolTip.

enter image description here

The text seems to be using the ListViewItems text alignment (Right). I have tried adding the following properties to teh style but nothing changes:

<Setter Property="TootlTip.HorizontalAlignment" Value="Left" />
<Setter Property="TootlTip.HorizontalContentAlignment" Value="Left" />
<Setter Property="TootlTip.Width" Value="300" />

Is there a way to either increase the ToolTip width so there is no wrapping of the text or make the ToolTip text left aligned.

Upvotes: 1

Views: 2080

Answers (2)

zagZzig
zagZzig

Reputation: 136

I got the same problem and after some digging (RibbonToolTip is inheriting alignment from a textbox), I found a solution. It maybe late, but it would benefit others.

What you need to do is to setup you ToolTip style like this:

     <Style TargetType="ToolTip">
        <Setter Property="TextBlock.TextAlignment" Value="Left"/>
     </Style>

Upvotes: 2

taquion
taquion

Reputation: 2767

Since Tooltip is a ContentControl you can customize its content as you want. Consider the following example:

<Grid>
    <Button Content="Hi there!">
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="ToolTip">
                    <Setter.Value>
                        <ToolTip  MaxWidth="100" HorizontalContentAlignment="Center">
                            <TextBlock Text="fsdfasdfasdfasdfasdfasdfadsfasdf fadsfadsf adfa fdasfasdfasdfa adfasd" TextAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap"/>
                        </ToolTip>
                    </Setter.Value>
                </Setter>
            </Style>
        </Button.Style>
    </Button>
</Grid>

You can play around with the content's properties (in this case the TextBlock) in order to achieve the final look you want.

Upvotes: 0

Related Questions