2017-07-23 50 views
0

下面我有邊界:當顯示面板隱藏邊框與子控件之外WPF

<Border CornerRadius="10,10,0,0" Height="23" 
      HorizontalAlignment="Center" 
      VerticalAlignment="Center" 
      BorderBrush="DarkBlue" 
      BorderThickness="1" 
      Background="AntiqueWhite"> 
      <StackPanel Orientation="Horizontal" 
         HorizontalAlignment="Center"> 
       <Image Source="/Resources/Info_48.png" 
         Height="20" 
         Width="20" 
         Stretch="Fill"/> 
       <TextBlock Width="90" 
          VerticalAlignment="Center" 
          HorizontalAlignment="Left" 
          Background="Transparent" 
          FontSize="12"> 
        <Run Text="This is a Popup simulation"/> 
       </TextBlock> 
      </StackPanel> 
    </Border> 

這個邊界是可見的。一旦顯示邊框和子組件,它們將自動隱藏在窗口中的任何位置點擊鼠標。

我想要做的是檢測boder及其子組件之外的鼠標單擊事件。一旦在外面檢測到點擊,當StaysOpen = false時,我需要隱藏邊框及其子組件類似的彈出框,並且它在鼠標點擊時自動隱藏。

如何檢測控件外部的鼠標點擊?

回答

0

邊境可見或隱藏邊框通過改變顏色或等一系列風格..

<Border Background="Transparent" 
    Height="18" Width="18"> 
<Border.Style> 
    <Style Target-type="Border"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="visibility" Value="false" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Border.Style> 

+0

這不是我想要的。當用戶單擊控件外的任何位置時,我想隱藏邊框及其所有子組件。例如,創建一個彈出控件並將StaysOpen設置爲false,然後單擊彈出控件外部的任何位置,看看會發生什麼:當您單擊外部彈出窗口時被隱藏,我需要相同的行爲。在你的例子中,它被隱藏在鼠標上。 – user1624552