2017-10-19 133 views
0

在我的WPF应用程序中我使用滚动查看器来显示图表。 该图可能相当大且复杂,通常您只能在Scrollviewer控件中看到图的一个智能部分。WPF滚动查看器概述控件

为了便于图表导航,我将创建一个应该包含整个图表图片的控件。如果您在此控件中点击特定位置,滚动查看器应该将图表滚动到这个位置。

Something like that

什么是做到这一点的最简单的方法? 非常感谢并为我可怕的英语感到难过。

+0

最简单的就是买它或找到一个可接受的免费版本。你想要什么被称为“缩放内容控制”。您最喜爱的搜索引擎上有几个选项被编入索引。 – Will

回答

1

XAML:

<Grid> 
    <ScrollViewer x:Name="TheScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
     <Image x:Name="FullImage" Source="Test.jpg" Stretch="None"></Image> 
    </ScrollViewer> 
    <Border BorderBrush="Red" BorderThickness="1" VerticalAlignment="Bottom" HorizontalAlignment="Right"> 
     <Image x:Name="ThumbnailImage" Height="100" Source="Test.jpg" MouseDown="ThumbnailImage_OnMouseDown"/> 
    </Border> 
</Grid> 

代码隐藏:

private void ThumbnailImage_OnMouseDown(object sender, MouseButtonEventArgs e) 
{ 
    var position = e.GetPosition(ThumnailImage); 

    var horOffset = position.X/ThumnailImage.ActualWidth * FullImage.ActualWidth; 
    var verOffset = position.Y/ThumnailImage.ActualHeight * FullImage.ActualHeight; 

    TheScrollViewer.ScrollToHorizontalOffset(horOffset); 
    TheScrollViewer.ScrollToVerticalOffset(verOffset); 
} 
+0

不幸的是,没有“修复”图表图片 - 图表将动态生成并且可以改变。 但也许有办法让“完整”滚动查看器图片,并将其绑定到图像控件? –

+0

只要根据变化的图片更改'Image'控件的'Source'属性。 “Image”控件应该是固定的。对? – Iron

+0

是的,你是对的。你可以使用绑定或者只是设置'FullImage.Source = xxx; ThumbnailImage.Source = xxx;'在代码隐藏中。 – Iron