Понадобилось "вживить" в стандартный ScrollViewer несколько контролов, благодаря которым пользователь мог бы менять коэффициенты масштабирования по горизонтали и вертикали.
Первое что пришло в голову — это изменение свойства Template в стиле для ScrollViewer:
<Style x:Key="CustomScrollViewer" TargetType="{x:Type ScrollViewer}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<!-- добавляем элементы из которых состоит ScrollViewer-->
<Grid>
...
<ScrollBar x:Name="PART_VerticalScrollBar" ... >
<!--добавляем кнопки "+" "-", а так же Slider, для изменения масштаба по вертикали-->
<StackPanel VerticalAlignment="Bottom" Width="17" Height="131" Grid.Row="0" Grid.Column="1" Orientation="Vertical">
<Button x:Name="vert_plus_btn" Content="+" Height="18" Width="17" Padding="0,-2,0,0"/>
<Slider x:Name="vert_slider" Style="{StaticResource sl}" Orientation="Vertical" Height="95" .../>
<Button x:Name="vert_minus_btn" Content="-" Height="18" Width="17" Padding="0,-2,0,0"/>
</StackPanel>
...
В результате при нажатии на кнопки
vert_plus_btn("+"),
vert_minus_btn("-") или при перемещении slider'а
vert_slider — масштаб должен изменяться.
Вопрос: как можно получить ссылку на объект
vert_slider в cs файле реализации(С#), чтобы изменять его свойство
vert_slider.Value при каждом новом нажатии на
"+" или
"-"? Или же подход иной?)
Спасибо.0,-2,0,0