使用气球样式自定义WPF中的弹出控件

时间:2017-04-04 22:00:12

标签: c# wpf popup styles

我正在尝试像下面这样实现Popup Control:

enter image description here

必须在“紫色问号”图标上发生MouseEnter事件时显示。

但我无法实现这样的Popup风格,因为我是WPF的新手。

截至目前我想做的事情:

  1. 要在相对位置显示Popup为紫色“?”标记图标是“?”的右中心图标。
  2. 实现具有会话气球等背景的Popup风格。我不能硬编码Popup的大小,因为里面的文本内容的长度可能会有所不同。
  3. 如果有人可以帮助我实现弹出控制这样的风格将是一个很大的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

修改:根据您的评论,您可以在MouseEnterMouseExit事件处理程序中处理工具提示的开启/关闭。

您可以使用工具提示并按照自己喜欢的方式设置样式。这将为您提供适当的“弹出”行为。可以使用ToolTipService附加属性定义工具提示本身的行为。这应该可以帮到你。

<Ellipse x:Name="_ellipse" Width="100" Height="100" Fill="Purple">
    <Ellipse.Resources>
        <Style TargetType="{x:Type ToolTip}">
            <Setter Property="Background" Value="Black"/>
            <Setter Property="Foreground" Value="Gray"/>
        </Style>
        <Style TargetType="{x:Type Ellipse}">
            <Setter Property="ToolTip" Value="Your tooltip text."/>
            <Setter Property="ToolTipService.InitialShowDelay" Value="0"/>
            <Setter Property="ToolTipService.Placement" Value="Right,Absolute"/>
            <Setter Property="ToolTipService.VerticalOffset" Value="40"/>
        </Style>
    </Ellipse.Resources>
</Ellipse>

然后,在您的代码隐藏MouseEnter处理程序

private void _txt_MouseEnter(object sender, MouseEventArgs e)
{
    Ellipse thisSender = (Ellipse)sender;
    Tooltip tooltip = (ToolTip)thisSender.ToolTip;
    tooltip.IsOpen = true;
}