Ich habe eine Grenze in MVVM. Was ich versuche zu erreichen, ist die linke Maustaste außerhalb des Rahmens zu erkennen und dann zu verstecken. Ich kann es innerhalb des MouseLeftButtonDown Ereignisses für das Hauptfenster tun, aber ich weiß nicht, ob es die beste Lösung ist. Wie könnte ich das tun? Ich möchte vermeiden, dass dieser Klick andere Ereignisse beeinflusst, zum Beispiel wird dieser Rahmen in einem Stackpanel platziert und das Stackpanel wird durch Klicken auf die linke Maustaste der Maus ausgeblendet.Detect Maus links unten (Klick) außerhalb einer Grenze WPF MVVM
<Border Grid.Row="2"
x:Name="customPopup"
CornerRadius="10,10,0,0"
Height="25" Margin="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="Auto"
BorderBrush="DarkBlue"
BorderThickness="1"
Background="AntiqueWhite">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center">
<Image Source="/Common.Images;component/Images/Info.png"
Height="20"
Width="20" Stretch="Fill"/>
<TextBlock Margin="5"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Background="Transparent"
FontSize="12">
<Run Text="Click outside to close it"/>
</TextBlock>
</StackPanel>
</Border>
Ich habe keine Methode mit der von Ihnen geposteten Signatur gesehen. Es gibt folgende Signatur: private void Window_PreviewMouseDown (Objekt Absender, MouseButtonEventArgs e) Auch es funktioniert nicht, da mein Doppelklick-Ereignis (das das Stackpanel verbirgt) nicht funktioniert. – user1624552
Haben meine Tunneling/Bubbling-Ereignisse durcheinander gebracht, überprüfen Sie meine Bearbeitung –
Innerhalb von Window_MouseDown verwenden Sie && und es sollte || sein. Auch wenn Sie außerhalb eines benutzerdefinierten Popup-Fensters klicken, wird es nicht immer ausgeblendet. Wenn ich zum Beispiel auf eine Schaltfläche oder in ein Textfeld klicke, wird das Popup nicht ausgeblendet. Ich möchte ausgeblendet werden, wenn ich auf ein Steuerelement in der Benutzeroberfläche außerhalb des Popup-Fensters klicke. Wie kann ich das lösen? – user1624552