2017-04-04 56 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。感謝您的及時迴應。 –