2017-04-04 57 views
0

我想实现控制弹出如下图所示:自定义弹出控制在WPF与气球风格

enter image description here

这有当MouseEnter事件的“紫色问号”图标出现时显示。

但我无法实现WPF这种新的Popup样式。

事情要办截至目前:

  1. 要显示在一个相对位置,以紫色弹出“?”标记“?”的右中心图标图标。
  2. 实现像对话气球这样的背景的弹出式样式。我不能硬编码Popup的大小,因为文本内容的长度可能会有所不同。

如果任何人都可以帮助我用这种风格实现Popup控件将是一个很大的帮助。提前致谢。

回答

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; 
} 
+0

我不能使用工具提示的应用程序将在触摸屏系统上运行,因此用户不能做鼠标移到看到提示。如果用户触摸紫色问号图标,它总是会发出点击事件。 –

+0

@RobinPurbia,按照你的问题,你怎么期望'MouseEnter'事件触发? –

+0

MouseEnter和MouseLeave事件正在工作,我试过了。我只是想帮助制作这样的Popup。感谢您的及时回应。 –