我目前正在Silverlight中设计一个布局应用,并且Canvas
内有一个Viewbox
。我向画布添加了形状并且它们显示正确,当我调整视图框的大小以放大2倍的高度和宽度时,一切仍然正确绘制。
当我尝试缩放系数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;