Dobrý den, Měl bych dotaz, v projektu mám slider s vlastní xaml šablonou. Šablona je vytvořena z gridu o třech řádcích (jde o vertikální slider), kde krajní jsou repeat button pro větší přírůstek (výška řádku Auto), a prostřední je Thumb. Nevím jak docílit toho, abych mohl chytit thumb myší ? Fungují klávesy Up a Down pro malou změnu, PgUp/PgDown pro velkou změnu, kliknutí myší do prostoru repeatbuttonu se také chová jak má. Př.: Thumb slideru:
<Style x:Key="ZakladacThumb" TargetType="{x:Type Thumb}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Image Source="{StaticResource ZakladacImage}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Repeat button:
<Style x:Key="SliderRepeatButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border Background="Transparent" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Control template slideru:
<ControlTemplate x:Key="Vez1SkladVerticalSliderTemplate" TargetType="{x:Type Slider}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="10" Grid.RowSpan="2" Source="{StaticResource Vez1Image}" Stretch="Fill" Margin="0" />
<Track Grid.Row="1" Grid.Column="4" Grid.ColumnSpan="5" Margin="0">
<Track.DecreaseRepeatButton>
<RepeatButton Style="{StaticResource SliderRepeatButton}" Command="Slider.DecreaseLarge" />
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ZakladacThumb}"/>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Style="{StaticResource SliderRepeatButton}" Command="Slider.IncreaseLarge" />
</Track.IncreaseRepeatButton>
</Track>
</Grid>
</ControlTemplate>
Styl:
<Style x:Key="Vez1Slider" TargetType="{x:Type Slider}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template" Value="{StaticResource Vez1SkladVerticalSliderTemplate}" />
</Style>
|