Получил немного застрял и мог использовать некоторую помощь. Чтобы достичь: всякий раз, когда вы нажимаете за пределы StackPanel - это Visibilty должно измениться на Hidden.LostFocus не стреляет
Довольно просто один, я написал следующее условие:
private void pnlLeftMenu_LostFocus(object sender, RoutedEventArgs e)
{
if (pnlLeftMenu.IsFocused == false)
{
pnlLeftMenu.Visibility = Visibility.Hidden;
}
}
Где pnlLeftMenu находится панель, которая должна быть запущена. Здесь не является XAML кусок, с описанными свойствами:
<StackPanel x:Name="pnlLeftMenu"
Orientation="Vertical"
Height="475"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Margin="57,0,0,0"
Visibility="Hidden"
Background="{StaticResource BlueFadedBrush}"
IsVisibleChanged="pnlLeftMenu_IsVisibleChanged"
Focusable="True"
LostFocus="pnlLeftMenu_LostFocus" >
Не беспокойтесь по поводу того, что он уже спрятался - это дополнительное меню, которые становятся vissible на кнопку мыши. Эта часть отлично работает.
Итак, вопрос в том, чего мне не хватает? Причина, когда это выглядит так: щелчок за пределами панели не дает никакой реакции.
первоначально она спрятана то, как он получил фокус? –
Получает изменение свойства при нажатии: private void btnLeftMenuShow_Click (отправитель объекта, RoutedEventArgs e) { pnlLeftMenu.Visibility = Visibility.Visible; } –
Кроме того, я просто попытался сфокусироваться: private void btnLeftMenuShow_Click (отправитель объекта, RoutedEventArgs e) { pnlLeftMenu.Visibility = Visibility.Visible; pnlLeftMenu.Focus(); } –