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;
請發表您的XAML代碼 – danbord 2011-01-28 15:20:02