Я столкнулся с этой проблемой при масштабировании графика, который рисуется поверх ГИС-элемента управления Greatmap. Но простой эксперимент убеждает меня, что проблемы где-то глубже в WPF.
Рассмотрим простое приложение WPF:
Это MainWindow.xaml
<Grid>
<StackPanel>
<Slider ValueChanged="Size_Changed" Minimum="0" Maximum="300000"/>
<TextBox x:Name="Value"></TextBox>
</StackPanel>
<Canvas>
<Path x:Name="MyPath" Stroke="Black" StrokeThickness="2" />
</Canvas>
</Grid>
И это его код позади
private void Size_Changed(object sender,
RoutedPropertyChangedEventArgs<double> e)
{
if (MyPath == null) return;
var g = new StreamGeometry();
using (var s = g.Open())
{
var pointA = new Point(0, 200);
s.BeginFigure(pointA, false, false);
var pointB = new Point(e.NewValue, 200);
s.PolyLineTo(new[] {pointB}, true, true);
Value.Text = $"zoom = {e.NewValue:0.0} ; pointA = {pointA.X:#,0} ; pointB = {pointB.X:#,0}";
}
g.Freeze();
MyPath.Data = g;
}
Пока я перетаскиваю слайдер от 0 до 249999, все в порядке. Я вижу линию на моем взгляде. Но в тот момент значение ползунков становится 250000 - линия исчезает.
Есть ли ограничения в WPF?