WPF:带图像的样式工具提示

时间:2015-02-13 21:50:03

标签: c# wpf styles tooltip

是否可以为ToolTip创建一个样式,将样式放置在工具提示所在的项目旁边,然后在用户将鼠标悬停在图像上时显示工具提示文本?像这样:

enter image description here

目前我正在使用StackPanel来添加带有工具提示的图像,如下所示:

<StackPanel Orientation="Horizontal">
    <CheckBox Content="Reload Employee Data"
              IsChecked="{Binding AdjustmentSettings.ReloadEmployeeData}" 
              Grid.Row="0"
              Grid.Column="0">
    </CheckBox>
    <Image Source="/DelphiaLibrary;Component/Resources/info.ico" 
           ToolTip="Check if you want to re-upload ...."/>
</StackPanel>

修改

为了澄清,我正在寻找一种样式工具提示的方法,这样如果我在任何对象上定义ToolTip(即Button,CheckBox等),就会显示信息图像,并在此信息上放置工具提示文本图像。

我希望能够做到这样的事情,并且仍然像上面的堆栈面板一样:

<CheckBox Content="Reload Employee Data"
                  IsChecked="{Binding AdjustmentSettings.ReloadEmployeeData}" 
                  Grid.Row="0"
                  Grid.Column="0"
                  ToolTip="Blah blah blah..."
                  Style="{StaticResource ToolTipImageStyle}">
</CheckBox>

并且能够将此ToolTipImageStyle应用于任何控件(即Button,CheckBox,TextBox等)。如果不可能,我可以为单个控件设置样式,并为不同的控件创建不同的样式(一个用于按钮,另一个用于TextBlock等)?

1 个答案:

答案 0 :(得分:0)

这应该这样做。我无法弄清楚颜色,所以只需改变它。

Source 1

Source 2

<Image Source="/DelphiaLibrary;Component/Resources/info.ico" Width="25" Height="25">
    <Image.ToolTip>
        <ToolTip Background="LightBlue">
            <TextBlock Width="200" TextWrapping="WrapWithOverflow">
                Check if you want to re-upload table foxpro.hrpersnl from the source. <LineBreak />
                Leave unchecked to use existing data that has been previously uplaoded.
            </TextBlock>
        </ToolTip>
    </Image.ToolTip>
</Image>

enter image description here

更新1:

Source 1

在App.xaml中添加:

<Application.Resources>
    <Style TargetType="{x:Type ToolTip}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToolTip}" >
                    <TextBox Background="LightBlue" Width="200" TextWrapping="WrapWithOverflow" Text="{TemplateBinding ToolTip.Content}" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

然后在您的XAML文件中更改为:

注意:这将适用于所有对象的工具提示。

<Image Source="Images/MenuImageZoomOut.png" Width="25" Height="25"
           ToolTip="Check if you want to re-upload table foxpro.hrpersnl from the source. Leave unchecked to use existing data that has been previously uplaoded." />

图片:

enter image description here

如果这不起作用,请尝试:Source