Tengo una ventana emergente con StaysOpen=False
así que quiero cerrarla haciendo clic en cualquier lugar fuera de la ventana emergente. Dentro de una ventana emergente tengo un DataGrid
. Si abro la ventana emergente y luego hago clic en otro lugar, la ventana emergente se cerrará. Pero no sucederá si antes de hacer clic fuera de la ventana emergente voy a hacer clic en el encabezado de la columna en DataGrid
. XAML prueba:wpf popup no se cierra automáticamente cuando datagrid dentro del menú emergente captura el mouse
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Black">
<Grid>
<ToggleButton x:Name="btn" VerticalAlignment="Top">Open</ToggleButton>
<Popup StaysOpen="False" IsOpen="{Binding IsChecked, ElementName=btn}" >
<DataGrid Width="150" Height="150">
<DataGrid.Columns>
<DataGridTextColumn Header="Column" />
</DataGrid.Columns>
</DataGrid>
</Popup>
</Grid>
</Window>
creo que se debe a título de columna captura el ratón en clic y emergente no recibe eventos de ratón más. Intenté agregar un controlador en el evento LostMouseCapture
para capturar el mouse de nuevo mediante una ventana emergente, pero parece que no funciona tan fácil. ¿Algunas ideas?
Esto funciona ... debe ser marcado como respuesta :) – user589195