Как установить высоту большого пальца элемента управления ползунка wpf - PullRequest
4 голосов
/ 01 сентября 2010

Я хочу поместить ползунок в ячейку таблицы данных, и высота строки равна 20, поэтому я бы хотел, чтобы высота большого пальца ползунка была меньше этой.Я установил высоту самого слайдера, но большой палец кажется обрезанным (то есть он не уменьшается до высоты, указанной в свойстве slider.height).Я не хочу переопределять весь шаблон элемента управления ползунка, чтобы сделать это.Должен быть какой-то способ установки свойства или что-то в этом роде.

Редактировать: даже когда я создаю собственный стиль слайдера, который включает в себя пользовательский стиль большого пальца с нужными мне размерами, он все равно не имеет нужного размера.

Есть идеи?

Ответы [ 3 ]

9 голосов
/ 26 июля 2012
<Slider.LayoutTransform>
    <ScaleTransform ScaleY="0.9" CenterX="15" CenterY="15"/>
</Slider.LayoutTransform>

Не очень привлекательно, но в сочетании со свойствами Slider.Height / Slider.Width работает как шарм!

1 голос
/ 17 апреля 2013

Установить стиль большого пальца:

<Style x:Key="SliderThumbStyle" TargetType="{x:Type Thumb}">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Thumb}">
                <!--<Ellipse 
                      Name="Ellipse" 
                      Fill="Yellow"
                      Stroke="Yellow" 
                      Height="10"
                      Width="{Binding Path=ThumbWidth, RelativeSource={RelativeSource TemplatedParent}}"
                      StrokeThickness="1" />-->
                <Rectangle 
                    Fill="Azure"
                    Stroke="Azure"
                    Height="7"
                    Width="{Binding Path=ThumbWidth, RelativeSource={RelativeSource TemplatedParent}}"
                    StrokeThickness="1"
                    Margin="0.1,.1,.1,.1"/>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Затем используйте этот стиль пользовательского элемента управления слайдером

<Style TargetType="{x:Type local:NvSliderControl}">
    <Setter Property="Orientation" Value="Vertical" />
    <Setter Property="Height" Value="50"/>        
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:NvSliderControl}">
                <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                    <Grid>
                        <Track x:Name="PART_Track" >
                            <Track.Thumb>
                                <Thumb Style="{StaticResource SliderThumbStyle}">
                                </Thumb>
                            </Track.Thumb>
                        </Track>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>

                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
0 голосов
/ 01 сентября 2010

просто посмотрите эту ссылку Привязка значения ползунка к высоте его большого пальца в WPF

может быть, это может вам помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...