2011-05-12 5 views
2

ScaleViewer에 ScaleTransform을 적용하고 스크롤 막대의 크기를 조절할 수 없는지 궁금합니다.WPF/Silverlight : ScrollBars에서 ScaleTransform 금지

는 여기에 내가 무엇을 시도했다입니다 :

<Window x:Class="Zoom.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <ScaleTransform x:Key="ScrollBarTransform" ScaleX="1.0" ScaleY="1.0" /> 
    <Style TargetType="ScrollBar"> 
     <Setter Property="LayoutTransform" Value="{StaticResource ScrollBarTransform}" /> 
    </Style> 
</Window.Resources> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <ScrollViewer Grid.Row="0"> 
     <ScrollViewer.LayoutTransform> 
      <ScaleTransform ScaleX="{Binding ElementName=scaleSlider, Path=Value}" 
          ScaleY="{Binding ElementName=scaleSlider, Path=Value}" /> 
     </ScrollViewer.LayoutTransform> 
    </ScrollViewer> 
    <Slider Grid.Row="1" Name="scaleSlider" Value="1" Minimum="0.5" Maximum="5.0" TickFrequency="0.25" /> 
</Grid> 

ScrollBarTransform 앞뒤로 슬라이더를 이동할 때 스틱하지 않는 것 같습니다. 이견있는 사람?

미리 감사드립니다.

답변

1

내가 찾고있는 것을 할 방법이없는 것처럼 보입니다. 적절한 방법을 찾아 본다면이 대답을 업데이트 할 것입니다.

0

왜 ScaleViewer 대신 ScrollViewer의 콘텐츠에 ScaleTransform을 추가하지 않으시겠습니까?

<ScrollViewer> 
    <ContentControl /> <!-- Apply ScaleTransform to this --> 
</ScrollViewer> 
+0

내 응용 프로그램에서이 작업을 수행하고 있지만 scrollviewer를 사용하지 않는 타사 컨트롤에 스케일링을 적용해야합니다. 대신 스크롤 막대를 오른쪽과 아래쪽에 놓기 위해 dockpanel을 사용했습니다. 컨트롤의 내용을 조절하면 스크롤 막대가 제대로 업데이트되지 않으므로 2x에서는 내용의 절반 만 볼 수 있습니다. 모든 것을 확장 한 경우에만 작동합니다. – dandax