2011-01-28 62 views
3

我目前正在Silverlight中設計一個佈局應用程序,並在Viewbox中有一個Canvas。我在畫布上添加了形狀,並且它們正確顯示,當我調整視圖框以放大2倍的高度和寬度時,所有東西仍然可以正確繪製。沒有在Viewbox中調整大小的項目Silverlight

當我嘗試放大4或更大的因子或0.5(縮小)時,會出現問題。

更新:水平線仍然存在,它們只是沒有繪製。其他形狀和消失的形狀之間的相互作用仍然存在

當我這樣做時,任何水平線不會重繪,但其他任何形狀(其他垂直線)仍然會重繪。對象仍然是畫布的子項,它們的可見性都設置爲可見。

發生了什麼事?

更新
非常簡單的XAML:

<ScrollViewer x:Name="scrollViewer" 
       Padding="0" 
       ScrollViewer.VerticalScrollBarVisibility="Auto" 
       ScrollViewer.HorizontalScrollBarVisibility="Auto" 
       IsTabStop="False" 
       Background="Beige"> 
    <Viewbox x:Name="viewBox" Stretch="UniformToFill"> 
     <Canvas x:Name="designCanvas" 
       Background="{Binding ElementName=mainControl, Path=Background, Mode=TwoWay}"> 
     </Canvas> 
    </Viewbox> 
</ScrollViewer> 

這是我如何添加形狀:

Rectangle horGuide = new Rectangle() 
      { 
       Tag = "horGuide", 
       Fill = new SolidColorBrush(Colors.Cyan), 
       Height = 0.5, 
       Width = designCanvas.canvActualWidth*16, 
      }; 

      int h = designCanvas.horOffset; 
      int v = designCanvas.vertOffset; 
      double d = e.GetPosition(sideRule).Y; 

      designCanvas.Children.Add(horGuide); 
      Canvas.SetTop(horGuide, ((d+v)/ designCanvas.zoomFactor)); 
      Canvas.SetLeft(horGuide, 0 - h); 

放大:

 viewBox.Width *= 2; 
     viewBox.Height *= 2; 
+0

請發表您的XAML代碼 – danbord 2011-01-28 15:20:02

回答

相關問題