2015-02-28 6 views
0

У меня есть ползунок внутри пользовательского элемента управления. При тестировании этого слайдера не будет перемещаться, если он хранится внутри пользовательского элемента управления, но работает за его пределами. Есть ли что-то, что необходимо для его работы?Ползунок внутри пользовательского элемента управления не перемещается

Часть XAML для UserControl:

 <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="60"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="4,0,3,0" Grid.RowSpan="1"> 
       <TextBlock Text="15 mins" VerticalAlignment="Center" FontSize="16" Margin="0,-11,0,0" TextLineBounds="Tight" Foreground="White"/> 
       <Slider Foreground="White" SmallChange="50" TickFrequency="50" LargeChange="50" Background="#BFFFFFFF" Value="50" Margin="5,0" VerticalAlignment="Center" Width="250" StepFrequency="50" Maximum="100" ValueChanged="Slider_ValueChanged"/> 
       <TextBlock Text="1 hour" VerticalAlignment="Center" FontSize="16" Margin="0,-11,0,0" TextLineBounds="Tight" Foreground="White"/> 
      </StackPanel> 
      <ListBox x:Name="TimesList" DataContext="{Binding}" Background="{x:Null}" Foreground="White"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <Grid Width="365" DataContext="{Binding}"> 
          <TextBlock Foreground="White" Text="{Binding}" HorizontalAlignment="Stretch" FontSize="29.333"/> 
         </Grid> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      <Border Grid.RowSpan="2" BorderBrush="#B2FFFFFF" BorderThickness="2,0,2,2" Padding="0" Margin="-5,0,-5,-5"/> 
     </Grid> 
+0

Не могли бы вы показать нам код XAML вашего пользовательского контроля? –

+0

@ ŁukaszRejman Я отредактировал сообщение с помощью xaml для usercontrol. Спасибо за помощь! –

ответ

0

Я обнаружил, что 60 пикселей по высоте не хватает для Slider контроля. Вот почему это не работает. Но есть несколько простых способов исправить это. Вы можете выбрать то, что подходит вашим потребностям.

Вариант 1
Изменить первое определение высоты строки к Auto. Таким образом, Grid будет иметь значение Slider. Это 84 пикселя.

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto"/> 
    <RowDefinition Height="Auto"/> 
</Grid.RowDefinitions> 

Вариант 2
Способ использования Grid расположение делает это в значительной степени так же, как StackPanel. Таким образом, вы также можете заменить это Grid на StackPanel.

Вариант 3
Вы на изменение поля Sldier «s, чтобы соответствовать высоте 60 пикселей. Установите нижнее поле на -24.

<Slider Foreground="White" SmallChange="50" TickFrequency="50" LargeChange="50" Background="#BFFFFFFF" Value="50" Margin="5,0,5,-24" VerticalAlignment="Center" Width="250" StepFrequency="50" Maximum="100" ValueChanged="Slider_ValueChanged"/> 
+0

Спасибо за предложения! Я пробовал вариант 1, и он все еще не работает. Бывают ли какие-либо другие предложения? –

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

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