2015-07-02 2 views
0

я имею ListViewColumn с Slider и TextBlock показать Slider значение:Устройте 2 контроллера в одном столбце

<DataTemplate x:Key="MyDataTemplate2"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="70" /> 
      <ColumnDefinition Width="30" /> 
     </Grid.ColumnDefinitions> 
     <Slider Grid.Column="0" Name="sliderColumn" VerticalAlignment="Center" HorizontalAlignment="Left" TickPlacement="None" 
      Minimum="0" Maximum="50" Value="1" Style="{StaticResource SliderStyle}" Width="70" 
      TickFrequency="1" IsSnapToTickEnabled="True"/> 
     <TextBlock Grid.Column="0" Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0}}" FontSize="11" Foreground="White" 
      VerticalAlignment="Center" HorizontalAlignment="Right"/> 
    </Grid> 
</DataTemplate> 

Это результат:

enter image description here

И при изменении значения SliderTextBlock скрыта ползунком:

enter image description here

Что случилось с моим кодом?

ответ

1

Для решения проблемы необходимо добавить TextBlock в колонке 1, а также использовать HorizontalAlign свойство для выравнивания вашего TextBlock в левой, добавив немного влево Margin, чтобы остаться с лучшим визуальным.

Следующий код решает проблему:

<DataTemplate x:Key="MyDataTemplate2"> 

<Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="70" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 
     <Slider Grid.Column="0" Name="sliderColumn" VerticalAlignment="Center" HorizontalAlignment="Left" TickPlacement="None" 
      Minimum="0" Maximum="50" Value="1" Style="{StaticResource SliderStyle}" Width="70" TickFrequency="1" IsSnapToTickEnabled="True"/> 
     <TextBlock Grid.Column="1" Margin="5,0,0,0" Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0}}" FontSize="11" Foreground="black" 
      VerticalAlignment="Center" HorizontalAlignment="Left"/> 
    </Grid> 
</DataTemplate> 
+0

этот пример решает вашу проблему? –

+0

Да, спасибо, большое спасибо за вашу помощь. –

0

Ваш TextBlock находится в том же столбце, что и ваш слайдер, попробуйте поместить его в Grid.Column="1" вместо 0. Если это было предназначено, вы также можете поместить запас на любой из блоков, чтобы поместить пробел между ними.

+0

Я уже пробовал, могу ли я иметь короткий пример, пожалуйста? –

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