2016-02-24 13 views
0

Я пытался создать один холст с двумя слоями. Один слой прокручивается горизонтально, второй - сверху и прокручивает по вертикали. Во втором слое (том, который прокручивается вертикально) я складывал прозрачную сетку (или панель) и панель с информацией, чтобы мы могли видеть первый слой, который находится под этим, и если мы прокручиваем вверх, у нас есть информация который появляется на экране.Событие маршрута к элементу под текущим элементом

Это работает как шарм, за исключением того, что если я прокручиваю по горизонтали, первый слой (один под) не прокручивается вообще. Это не проблема, если вертикальные прокрутки не прокручиваются, если мы проведите прозрачную сетку.

Это моя XAML

<Canvas x:Name="Canvas"> 
    <local:MyPage x:Name="PageContainer"/> <!--This one scrolls horizontally --> 
    <ScrollViewer 
        HorizontalScrollBarVisibility="Disabled" 
        VerticalScrollBarVisibility="Hidden" 
        Height="{Binding ActualHeight, ElementName=UcRoot}"> 
<!--This one scrolls vertically and appears on top --> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 
      <Grid Height="600" Width="600" Grid.Row="0" x:Name="TransparentGrid" ></Grid> 
      <Grid x:Name="Information" Background="Azure" Height="1200" Width="600" Grid.Row="1"> 
      </Grid> 
     </Grid> 
    </ScrollViewer> 

</Canvas> 

Я пробовал много вещей на прозрачной сетке (настройка ширины 1, удаляя его и установив информацию маржинального сетки сверху 1200, например), но сетка захватывает событие и не ретранслирует на мою страницу.

Могу ли я получить помощь?

Спасибо!

+0

Как о наборе 'ScrollViewer Margin = "0, 0, 0, 25"'? Ваш слой прозрачный, так что это может быть ОК – Sakura

+0

Это не работает. Информационной панели необходимо взять всю ширину моего холста, и она также должна ответить пальцем на пальце. – Daniel

+0

Тогда вам нужно [ручка] (http://stackoverflow.com/a/12662362/1560697) событие 'ManipulationDelta' наверху слой. Если пользователь протрите влево/вправо, вы прокрутите нижний слой соответственно – Sakura

ответ

1

Вы должны установить фон для 'Transparent' к сетке, чтобы иметь возможность нажать на нее и салфетки .. и вы, возможно, нужны эти свойства, чтобы играть с:

ScrollViewer.VerticalScrollMode 
ScrollViewer.HorizontalScrollMode 

Хотя, это мой предлагаемые решения:

 <ScrollViewer ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.HorizontalScrollMode="Disabled" > 
      <Grid > 
       <TextBlock Text="contnet" /> 
      </Grid> 
     </ScrollViewer> 

     <ScrollViewer ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollMode="Enabled" > 
      <Grid Background="Transparent"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="Auto"/> 
       </Grid.RowDefinitions> 
       <Grid Height="600" Width="600" Grid.Row="0" x:Name="TransparentGrid" Background="Transparent" ></Grid> 
       <Grid x:Name="Information" Background="Azure" Height="1200" Width="600" Grid.Row="1"/> 


      </Grid> 
     </ScrollViewer> 

    </Canvas> 
+0

Спасибо за прокрутку. Это помогло мне решить другую ошибку (вот почему я дал вам +1). Однако это не решило начальную проблему. – Daniel

+0

Приятно слышать: D .. Так что я, возможно, неправильно понимаю вас в этом, можете ли вы, пожалуйста, более четко о вашей проблеме? Вы хотите иметь верхний заголовок с прозрачным фоном с возможностью горизонтальной прокрутки его с некоторыми элементами? –

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

  • Нет связанных вопросов^_^