6 votes

Comment puis-je définir la hauteur du pouce d'un contrôle de curseur wpf ?

Je veux placer un curseur dans une cellule d'une grille de données et la ligne a une hauteur de 20, donc je voudrais que la hauteur du pouce du curseur soit plus petite que cela. J'ai défini la hauteur du curseur lui-même, mais le pouce semble être coupé (c'est-à-dire qu'il n'est pas réduit à la hauteur que je spécifie dans la propriété slider.height). Je ne veux pas avoir à modifier l'ensemble du modèle de contrôle du contrôle du curseur pour y parvenir. Il doit y avoir un moyen de définir une propriété ou quelque chose du genre.

Edit : Même lorsque je crée un style de curseur personnalisé qui inclut le style de pouce personnalisé avec les tailles que je veux, il ne s'adapte toujours pas correctement.

Des idées ?

11voto

Nicolas Voron Points 1045
<Slider.LayoutTransform>
    <ScaleTransform ScaleY="0.9" CenterX="15" CenterY="15"/>
</Slider.LayoutTransform>

Ce n'est pas très sexy, mais cela fonctionne comme un charme lorsqu'on le combine avec les propriétés Slider.Height/Slider.Width !

2voto

udaymAn.... Points 21

Définir le style du pouce :

<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>

Ensuite, utilisez ce contrôle personnalisé de curseur de 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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X