В настоящее время я разрабатываю макет приложения в 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;