我想将一个滑块放入一个datagrid单元格,并且该行的高度为20,所以我想让滑块的拇指高度更小比起那个来说。我设置了滑块自身的高度,但拇指似乎被切掉(即,它不缩小到我在slider.height属性中指定的高度)。我不想重写滑块控件的整个控件模板来执行此操作。有一些设置属性或类似的东西的方法。如何设置一个wpf滑块控件的拇指的高度
编辑:即使当我创建一个自定义滑块样式,其中包含我想要的尺寸的自定义滑块样式时,它的尺寸仍然不正确。
任何想法?
我想将一个滑块放入一个datagrid单元格,并且该行的高度为20,所以我想让滑块的拇指高度更小比起那个来说。我设置了滑块自身的高度,但拇指似乎被切掉(即,它不缩小到我在slider.height属性中指定的高度)。我不想重写滑块控件的整个控件模板来执行此操作。有一些设置属性或类似的东西的方法。如何设置一个wpf滑块控件的拇指的高度
编辑:即使当我创建一个自定义滑块样式,其中包含我想要的尺寸的自定义滑块样式时,它的尺寸仍然不正确。
任何想法?
刚刚看到这个链接 Binding a slider value on the height of its thumb in WPF
可能是这可以帮助你
<Slider.LayoutTransform>
<ScaleTransform ScaleY="0.9" CenterX="15" CenterY="15"/>
</Slider.LayoutTransform>
不是很性感,但它的工作原理是当蒙山的Slider.Height/Slider.Width特性相结合的魅力!
如果规模变化不是太大(0.6-1.4或类似的东西),这将是最常见的,非常简单的解决方案。 – phil13131 2013-08-26 12:48:16
设置拇指风格:
<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>
这是一两件事,我希望我没有做。我认为会有另一种方法来通过设置属性来改变滑块控件的拇指高度,而不是必须通过整个控件模板覆盖过程。 – BrianP 2010-09-01 16:39:04