2010-06-12 41 views
3

更新我有滾動查看器內部的圖像和我有用於縮放的圖像,並且在變焦時事件我改變圖像的比例的控制,如下:滾動觀看者未在Silverlight

void zoomSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
     { 
      scale.ScaleX = e.NewValue; 
      scale.ScaleY = e.NewValue; 
      //scroll is a name of scrolviewer 
      scroll.UpdateLayout(); 
     } 

而xaml低於

<Grid x:Name="Preview" Grid.Column="1"> 
      <Border x:Name="OuterBorder" BorderThickness="1" BorderBrush="#A3A3A3" > 
       <Border x:Name="InnerBorder" BorderBrush="Transparent" Margin="2" > 
        <Grid Background="White" > 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <ScrollViewer x:Name="scroll" HorizontalScrollBarVisibility="Auto" Grid.Column="0" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Themes:ThemeManager.StyleKey="TreeScrollViewer"> 
          <Image Source="../charge_chargeline.PNG" > 
           <Image.RenderTransform> 
            <CompositeTransform x:Name="**scale**" /> 
           </Image.RenderTransform> 
          </Image> 
         </ScrollViewer> 
         <Border HorizontalAlignment="Center" CornerRadius="0,0,2,2" Width="250" Height="24" VerticalAlignment="Top"> 
          <Border.Background> 
           <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
            <GradientStop Color="#CDD1D4" Offset="0.0"/> 
            <GradientStop Color="#C8CACD" Offset="1.0"/> 
           </LinearGradientBrush> 
          </Border.Background> 
          <ChargeEntry:Zoom x:Name="zoominout" /> 
         </Border> 
        </Grid> 
       </Border> 
      </Border> 


     </Grid> 
+0

你有問題要問?你究竟看到了什麼?你到底想要看到什麼? – AnthonyWJones 2010-06-12 12:23:34

+0

@anthony。當我zomming圖像得到放大,但它不會對滾動查看器的任何影響。 – Malcolm 2010-06-12 12:28:10

+0

與此相同的問題http://forums.silverlight.net/forums/p/11283/413763.aspx – Malcolm 2010-06-12 12:29:47

回答

3

這裏的問題是渲染轉換髮生在渲染過程的很晚。晚於衡量和安排階段。滾動查看器根本不知道由縮放變換引起的任何明顯的尺寸變化,但它仍然認爲包含的元素具有由Actual屬性指定的大小。

一種解決方案可能是使用Silverlight Toolkit中的LayoutTransform對象。這將應用一個變換作爲其佈局的一部分,因此其屬性將反映縮放的大小。在ScrollViewer中,滾動條應該像預期的那樣工作。

+0

+1這正是我要寫的東西,所以謝謝你節省了我的時間! :) – Venemo 2010-06-12 21:32:40

+0

它使用了LayoutTransfor。:) – Malcolm 2010-06-14 06:08:04