WPF工具提示文字对齐

时间:2018-02-14 14:39:19

标签: c# wpf tooltip

我有以下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>

此项目的Style如下:

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

我遇到ToolTip内文字对齐的问题。

enter image description here

文本似乎使用ListViewItems文本对齐(右)。我尝试将以下属性添加到样式但没有任何变化:

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

是否可以增加ToolTip宽度,以便不会包装文本或使ToolTip文本保持对齐。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,经过一番挖掘(RibbonToolTip is inheriting alignment from a textbox),我找到了解决方案。也许已经晚了,但是它将使其他人受益。

您需要做的就是这样设置工具提示样式:

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

答案 1 :(得分:0)

由于Tooltip是ContentControl,您可以根据需要自定义其内容。请考虑以下示例:

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

您可以使用内容的属性(在本例中为TextBlock),以实现您想要的最终效果。