0
私はMVVMに境界線を持っています。私が達成しようとしているのは、マウスの左ボタンを境界線の外に検出し、それを隠すことです。私はメインウィンドウのMouseLeftButtonDownイベント内でそれを行うことができますが、それが最善の解決策であるかどうかはわかりません。どうすればこのことができますか?たとえば、この境界線がスタックパネルに配置され、スタックパネルがマウスの左ボタンのダブルクリックで隠されているなど、他のイベントを妨げるためにこのクリックを避けたいとします。ボーダー外でマウスの左ボタンをクリック(クリック)します。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>
投稿した署名の方法はありませんでした。次のシグネチャがあります:private void Window_PreviewMouseDown(object sender、MouseButtonEventArgs e)ダブルクリックイベント(スタックパネルを隠す)が動作していないので、動作しません。 – user1624552
私のトンネリング/バブリングのイベントが混ざりました。私の編集を確認してください。 –
Window_MouseDown内で&&を使用しています。また、外部のカスタムポップアップをクリックしたときに必ずしも非表示になっているとは限りません。たとえば、ボタンをクリックするかテキストボックスをクリックすると、ポップアップは非表示になりません。私は、ポップアップの外のUIの任意のコントロールをクリックすると隠されたいと思います。これをどうすれば解決できますか? – user1624552