2015-12-22 5 views
0

Эй, я хочу сделать в своих окнах 8.1 приложение для телефона a Просмотр, что я могу пронести по нижней части окна (изображения ниже объясняют это лучше). Представление должно позволить прокрутить/перетащить его на дно снова. Любая идея или подсказка о том, как я могу это сделать? Заранее спасибо.Как добавить прокрутку/перетащить снизу снизу в окнах 8.1 телефон

Это то, что я хочу иметь первоначально Image - Initial state of view

Image - On swiping of view

+1

Почему вы не просто использовать AppBar? –

ответ

0

Используйте телефон для Windows Bottom App Bar .Это даст вам желаемый functionality.But вы не можете настроить дно приложение бар, например вы не можете добавить к нему переключатель или флажок. У него есть собственные предопределенные кнопки, называемые AppBarButton & AppBarToggleButtons. Для получения дополнительной информации перейдите по следующей ссылке: Windows Phone 8.1 for Developers – Application bar

Я надеюсь, что это вам поможет.

+0

ли мы можем перевести это представление на полную страницу? Мне нужно что-то вроде того, что мы видим в android, перетащив взгляд. Возможно ли это в телефоне Windows? –

+0

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

0

Попробуйте это:
MainPage.xaml

<Page x:Name="page" 
x:Class="MyApp.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:MyApp" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
<Canvas Background="Red"> 
    <Grid> 
     <!--Your layout--> 
    </Grid> 
    <Grid x:Name="swipingContent" Canvas.Left="0" Background="Black" Width="{Binding ActualWidth, ElementName=page, Mode=OneWay}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <Thumb x:Name="thumb" Height="35" ManipulationMode="TranslateY" IsEnabled="True" ManipulationDelta="Thumb_ManipulationDelta"/> 
     <TextBlock Foreground="Black" FontSize="22" Text="Heading" VerticalAlignment="Center"/> 
     <CheckBox Grid.Row="1" IsChecked="True" Content="Some CheckBox"/> 
     <!--and other layout--> 
    </Grid> 
</Canvas> 
</Page> 

MainPage.xaml.cs:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync(); 
     this.NavigationCacheMode = NavigationCacheMode.Required; 
     this.SizeChanged += MainPage_SizeChanged; 

    } 

    private void MainPage_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     swipingContent.SetValue(Canvas.TopProperty, e.NewSize.Height - thumb.ActualHeight); 
    } 


    private void Thumb_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
    { 
     var maxSwipedHeight = swipingContent.Height; 
     var currentPosition = (double)swipingContent.GetValue(Canvas.TopProperty); 
     var distanceFromBottom = this.ActualHeight - currentPosition; 
     var targetDistance = distanceFromBottom - e.Delta.Translation.Y; 
     double targetPosition; 
     if (targetDistance <= thumb.ActualHeight) 
     { 
      targetPosition = this.ActualHeight - thumb.ActualHeight; 
     } 
     else if (targetDistance >= maxSwipedHeight) 
     { 
      targetPosition = this.ActualHeight - maxSwipedHeight; 
     } 
     else 
     { 
      targetPosition = this.ActualHeight - targetDistance; 
     } 
     swipingContent.SetValue(Canvas.TopProperty, targetPosition); 
    } 
} 
+0

Спасибо за помощь. Но в данном решении салфетки содержимого не гладкие, а не прокручивание, соответствующее скорости салфетки. Мне нужно что-то вроде панели уведомлений верхнего уровня Windows, например, анимированное прокручивание вверх. Пожалуйста помоги. –

Смежные вопросы