2011-01-14 4 views
3

Во многих приложениях Windows Phone 7 панель приложений скрыта по умолчанию, а когда вы нажимаете и удерживаете ее на экране, панель приложений становится видимой. Поскольку многие из WP7-приложений имеют такое поведение, мне было интересно, была ли встроенная поддержка такого поведения с ApplicationBar и как мне его использовать?WP7 - show hide bar приложения

+0

возможно дубликат [Windows Phone 7 Скрытие панели приложения] (http://stackoverflow.com/questions/4116311/windows-phone-7-hiding-the-application-bar) –

+1

Привет Раджа, не 100% уверен, что это то, что вы пытаетесь сделать, но проверьте это. Вы упомянули, что удерживаете область экрана, чтобы открыть панель приложений. Не уверен, что вы имели в виду под этим. Может быть, вы можете уточнить, не поможет ли это выше. –

+0

вы можете сказать нам одно конкретное приложение, которое имеет такое поведение? Я никогда не видел, чтобы панель приложений приходила и уходила на основе события удержания. Я видел всплывающие окна, но это никогда не было в панели приложений. –

ответ

6

Вы можете использовать GestureService в toolkit для обнаружения события Hold.

Например.
Если у вас этот XAML на странице:

<TextBlock TextWrapping="Wrap" Text="lorem ipsum ..."> 
    <toolkit:GestureService.GestureListener> 
     <toolkit:GestureListener Hold="TapAndHold" /> 
    </toolkit:GestureService.GestureListener> 
</TextBlock> 

и следующее для обработчика событий:

private void TapAndHold(object sender, GestureEventArgs e) 
{ 
    this.ApplicationBar.IsVisible = !this.ApplicationBar.IsVisible; 
} 

затем, удерживая в любом месте на TextBlock будет переключать отображение ApplicationBar.

Если вы хотите переключиться, если пользователь прослушивается и удерживается в любом месте на странице, вы можете прикрепить прослушиватель жестов к корневому объекту страницы. например

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <toolkit:GestureService.GestureListener> 
     <toolkit:GestureListener Hold="TapAndHold" /> 
    </toolkit:GestureService.GestureListener> 
1

Используйте свойство ApplicationBar текущей страницы и переключите свойство IsVisible соответственно, чтобы показать/скрыть ApplicationBar. ApplicationBar обрабатывается операционной системой, поэтому анимация для показа и скрытия будет обработана для вас.