I have encountered this problem while scaling graph, which is drawn over GIS control Greatmap. But a simple experiment persuades me that problems is somewhere deeper in WPF.
Consider simple WPF application:
This is 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>
And this is its code behind
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; }
While I drag slider from 0 to 249999 it’s all right. I can see line on my view. But at the very moment slider’s value becomes 250000 – line disappears.
Is there any limitations in WPF ?
#c-sharp #wpf