2015-03-05 3 views
0

Я пытаюсь создать свой собственный элемент управления. И я застрял в добавлении полос прокрутки к нему.ScrollBar Приложение для Windows Store

В целях тестирования я жестко закодировал значения полосы прокрутки.

Вот мой класс:

public sealed class BarrelPanel : Control 
    { 
     public static readonly DependencyProperty VerticalScrollBarVisibilityProperty = 
     DependencyProperty.Register(
     "VerticalScrollBarVisibility", typeof(Visibility), 
     typeof(BarrelPanel), null); 

     public Visibility VerticalScrollBarVisibility 
     { 
      get { return (Visibility)GetValue(VerticalScrollBarVisibilityProperty); } 
      set { SetValue(VerticalScrollBarVisibilityProperty, value); } 
     } 

     public BarrelPanel() 
     { 
      this.DefaultStyleKey = typeof(BarrelPanel); 
     } 
    } 

А вот мой стиль:

<Style TargetType="local:BarrelPanel"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="local:BarrelPanel"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition/> 
          <ColumnDefinition Width="auto"/> 
         </Grid.ColumnDefinitions> 
         <StackPanel Background="{TemplateBinding Background}"/> 
         <ScrollBar Grid.Column="1" Maximum="10" Orientation="Vertical" Visibility="{TemplateBinding VerticalScrollBarVisibility}" ViewportSize="1"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

Полоса прокрутки занимает часть сетки, когда я установить свойство видимости для включено:

<local:BarrelPanel HorizontalAlignment="Left" Background="White" Margin="722,212,0,0" VerticalScrollBarVisibility="Visible" VerticalAlignment="Top" Height="217" Width="150"/> 

Пример:

enter image description here

Но он не показывает перетаскиваемый прямоугольник или кнопки навигации - почему?

+0

Это просто учебное упражнение или что-то еще? Просто любопытно, почему вы не просто используете ScrollViewer для обработки ваших смещений/мер и т. Д. –

+0

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

ответ

0

Я нашел ответ, более расследование на MSDN:

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.primitives.scrollbar.aspx

Моя полоса прокрутки не появится, потому что вы необходимо указать, какой тип скроллинга будет показано:

IndicatorMode="MouseIndicator" 

или

IndicatorMode="TouchIndicator" 

по умолчанию это нет.

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